什么是EnsureNuGetPackageBuildImports目标?

时间:2014-02-28 08:39:10

标签: visual-studio visual-studio-2013 nuget nuget-package nuget-package-restore

在我的一些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和NuGet 2.8。

1 个答案:

答案 0 :(得分:5)

确保导入的.props和.targets文件确实已导入。自2.5以来,NuGet一直支持NuGet MSBuild支持。 EnsureNuGetPackageBuildImports代码已于9月添加,但我认为这是2.8更改。不幸的是,它看起来像是一种非向后兼容的变化。我们有2.7的一些开发人员现在需要升级到2.8。我在MsBuildProjectUtility.cs上的Common / line 11中找到了EnsureNuGetPackageBuildImports。