我注意到没有这些nuget指令的新.csproj
项目似乎工作正常。
这些是过去的遗物,可以从项目中删除吗?
我扫描了nuget FAQ,但没有找到与此相关的任何内容。
我正在运行Visual Studio 2013以及最新版本的Xamarin Studio。
<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists('$(SolutionDir)\.nuget\NuGet.targets')" />
<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>
答案 0 :(得分:3)
如果您使用了启用NuGet包还原菜单选项,则会添加这些特定目标。在这种情况下,可以删除这些目标。如果您安装了最新版本的NuGet,Visual Studio将自动恢复NuGet包,而没有这些额外的目标。这个菜单选项已被NuGet团队弃用,我相信它会在某些时候删除。
请注意,如果要在构建服务器上构建项目,则需要创建一个额外的步骤来使用NuGet.exe还原来还原NuGet包,这些步骤在构建服务器上构建解决方案时会自动还原由MSBuild。
另请注意,如果添加包含其自己的MSBuild .targets文件的NuGet包(如Microsoft.Bcl.Build),NuGet将添加非常相似的目标。在这种情况下,项目将在没有EnsureNuGetPackageBuildImports目标的情况下工作,但是需要导入MSBuild .targets文件的Import元素。保留项目中的EnsureNuGetPackageBuildImports目标确实会为您提供一个更有用的错误消息,说明如果未恢复NuGet包,构建可能会失败。