2012-01-30 7 views
3

私は単純なクラスライブラリプロジェクト(Class1)を使用しており、ソリューションのNuGet Package Restoreを有効にしています。msbuildでNuGet PackageRestoreを使用する

これは、restorepackagesタスクを.csprojファイルにインポートします。

私は

C:>msbuild myproj.csproj /t:compile 

でプロジェクトをコンパイルすることができると私はしかし、どのパッケージを追加することrestorepackagesタスクはANと失敗する原因になります

C:>msbuild myproj.csproj /t:restorepackages 

でパッケージを追加する前に、正常restorepackagesタスクを呼び出すことができますエラー3

NuGetタスクが誤った作業ディレクトリで呼び出されたようで、実際にはt彼はNuGet.targetsファイルのworkdir属性をソリューションに追加しました。

編集このようなタスク:

<Exec Command="$(RestoreCommand)" 
      LogStandardErrorAsError="true" 
      Condition="Exists('$(PackagesConfig)')" 
      WorkingDirectory="$(NuGetToolsPath)" /> 

と作業ディレクトリを削除するには:

<Exec Command="$(RestoreCommand)" 
      LogStandardErrorAsError="true" 
      Condition="Exists('$(PackagesConfig)')" 
      /> 

コマンドラインのMSBuildからとVS2010内の両方の期待通りに動作しているようです。

この変更によってツールが破損する可能性があるかどうかは知りませんか?

答えて

1

"Package Restore's $(SolutionDir) goes too far"という問題に関連することはありますか?

あなたのプロジェクトファイルに注入されたSolutionDirプロパティをチェックしましたか?生成された相対パスが実際のソリューションディレクトリを指していない可能性があります。

関連する問題