2017-05-17 3 views
0

TFS2015で自動ビルドを設定しようとしています。目標は、チェックイン時にソリューションが自動的に構築され、テストされるようにすることです。すべてが満たされると、新しいNugetパッケージが作成され、ローカルリポジトリに配置されます。TFSビルドでNugetパッケージが抽出されない

このプロセスは、依存性のない単純なプロジェクトである私の最初のソリューションでうまく動作します。このプロジェクトから作成されたNugetパッケージは、2番目のプロジェクトで依存関係として使用されます。

これはVisual Studioでビルドするときに問題なく動作します。パッケージは通常どおりダウンロードされ、抽出されます。しかし、この2番目のプロジェクトをTFSにチェックインすると、自動ビルドはこのパッケージを適切に処理しません。パッケージはローカルリポジトリから復元されますが、抽出されません。これは、ビルドに失敗したため、実際に必要なDLLが見つからないためです。

私もプロジェクトでEntityFrameworkを使用しており、正しく動作します。パッケージはダウンロードされますが、抽出されます。

このquestionに記載されている回避策を試しましたが、TFSサーバーにはC:\ Users.nuget \ packagesフォルダがありません。

また、hereコマンドを使用してNugetキャッシュをクリアしようとしましたが、それでも助けになりませんでした。

自動ビルドでダウンロードされたNugetパッケージを手動で抽出してビルドを再度実行すると、パッケージ自体に問題がないことが示されます。

Nuget.exeのバージョンは3.5です。 .Netバージョンは4.5標準です。パッケージはpackages.configで参照され、プロジェクト参照によっても参照されます。 Nuget.exeが復元に使用されています。

ローカルパッケージが抽出されない理由は何ですか?

+0

どのようなプロジェクトを使用していますか?クラシック.net、.netコア/スタンダード(> "SDK" - プロジェクト)。 packages.configまたはProjectReference?復元にnuget.exeを使用していますか? –

+0

.Netバージョンは4.5標準です。パッケージはpackages.configで参照され、プロジェクト参照によっても参照されます。 Nuget.exeが復元に使用されています。 – ChrisW

+0

そして、ソリューションローカルパッケージフォルダを削除すると、あなたのマシン上で動作しますか?私はパッケージの参照がpackages.configにないと思われ、あなたのdevマシンでうまく動作するかもしれません。 –

答えて

0

この原因は、このプロジェクトのパッケージフォルダをいくつかの点で間違ってチェックしていたため、ローカルのNugetフォルダから来ているように見えるのは実際にはパッケージフォルダプロジェクト。

TFSからパッケージフォルダを削除すると、問題が解決しました。

いずれにしてもパッケージが抽出されなかったのはなぜか分かりませんが、問題は解決しました。

+0

答えとしてマークしてください。おかげで –

+0

私は明日まですることができません – ChrisW

関連する問題