web-dev-qa-db-ja.com

EnsureNuGetPackageBuildImportsターゲットとは何ですか?

私のcsprojファイルのいくつかにはこれがありますが、持っていないものもあります。

  <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
    <PropertyGroup>
      <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.Microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
    </PropertyGroup>
    <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
  </Target>

これは正確には何で、なぜ必要なのですか?私の他のプロジェクトはパッケージを問題なく復元していますそれなしで

VS2013とNuGet2.8を使用しています。

18
Dave New

これにより、インポートされた.propsファイルと.targetsファイルが実際にインポートされます。 NuGetは、 2.5 以降、NuGetMSBuildのサポートをサポートしています。 PreventNuGetPackageBuildImportsコードは9月に追加されましたが、2.8の変更だと思います。残念ながら、下位互換性のない変更のようです。 2.7には、2.8にアップグレードする必要のある開発者がいます。私はEnsureNuGetPackageBuildImportsをCommon/ MsBuildProjectUtility.cs on line 11 に見つけました。

7
Cameron Taggart