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