nuget是否仍然需要Visual Studio项目中的这些条目?

时间:2015-03-05 20:42:20

标签: visual-studio-2013 nuget xamarin-studio csproj

我注意到没有这些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>

1 个答案:

答案 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包,构建可能会失败。