我正在使用Visual Studio 2013,我正在使用包含100多个项目的解决方案。当我打开此解决方案时,Visual Studio使用以下代码编辑每个项目文件:
<RestorePackages>true</RestorePackages>
<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>
奇怪的是,我是唯一一个有这个问题的人。 (我是最后一个加入他们的人)。
我在VS中使用以下扩展名:
我们正在使用TFS进行源代码控制。
当我构建解决方案时(当我得到更改时),我进入NuGet Restore循环,检查我是否已经拥有该包。
答案 0 :(得分:0)
您使用的是哪个版本的Nuget?这是因为在VS中使用旧的Nuget包恢复方式(在v 2.7之前)(即右键单击VS解决方案并启用包恢复)。这将导致VS编辑.CSPROJ文件。
从NuGet 2.7开始,NuGet Visual Studio扩展集成到Visual Studio的构建事件中,并在构建开始时恢复缺少的包。默认情况下启用此功能,但开发人员可以根据需要选择退出。 NuGet团队现在推荐的内容(在VS内构建时)既简洁又简单。简而言之,你不做任何特别的事情,它就会发生!这是因为NuGet现在总是在构建VS之前恢复包。因此,您的文件无需任何更改,这很漂亮!