11

ソース コードを Vault から TFS に移動しています。移行などは気にせず、Vault で最新のものを取得して TFS に追加するだけです。

ソリューションにはいくつかのプロジェクトがあり、それぞれに少なくとも 1 つの NuGet パッケージがあります。パッケージの復元を再び機能させようとしています。Vault で動作しました (ただし、想定どおりではありませんでした)。少し締め切りが迫っており、最初はうまくいかなかったので、プロジェクトごとに packages.config に対して nuget.exe を実行するビルド前イベントを追加しました。

TFSビルドサービスはそれについて不平を言うので、私はそれを「正しく」動作させようとしています.

  1. Visual Studio の [ツール] メニューでオプションを設定しました。
  2. NuGetEnablePackageRestore をインストールし、修正プログラムを実行しました。
  3. パッケージ ディレクトリがソース管理であることを確認しましたが、空です。
  4. 各プロジェクト ファイルに次のものが含まれていることを確認しました。
<RestorePackages>true</RestorePackages>
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />

診断レベルの詳細度でビルドすると、各プロジェクトがこれらのプロパティを評価することがわかりますが、nuget.targets の RestoreCommand は実行されません。

何かご意見は?

これらのリンクからソリューションを実装しようとしました:

  1. nuget - パッケージの復元が機能しない
  2. NuGetパッケージの復元が機能しない -明確化を求める質問/コメントをそこに投稿しました...
  3. http://nuget.codeplex.com/workitem/1879

編集

さらに、ビルド中に RestoreCommand プロパティが評価されていることがわかりました。診断の詳細度は次を示します。

RestoreCommand = (set EnableNuGetPackageRestore=true) && "C:\Source\Kiersted Direct And Related\Direct\Kiersted\.nuget\nuget.exe" install "packages.config" -source "@(PackageSource)" -o "C:\Source\Kiersted Direct And Related\Direct\Kiersted\packages"
4

2 に答える 2

10

私はそれを理解し、ここで答えを見つけました: MSBuildは、インポートされたプロジェクトからBuildDependsOnタスクを実行していません

(Diagnostic verbosity ビルド出力を調べた後の) 問題は、BuildDependsOn 設定が設定されていないことでした。私のプロジェクトファイルにはそれぞれインポートステートメントがありました

<Import Project="$(SolutionDir)\.nuget\nuget.targets" />

しかし、そのステートメントは XML ツリーの先頭にありました。どうやら、Microsoft.CSharp.targets のインポートは、そのインポート、つまり BuildDependsOn に干渉する可能性があります。

私の解決策は、nuget.targets インポートを Microsoft.CSharp.targets インポートの下に移動することでした。今ではすべてが美しく構築されています。

于 2012-11-07T20:06:38.197 に答える