Visual Studio 2013 Nuget在启动时更改项目文件

时间:2015-10-28 10:56:22

标签: c# visual-studio tfs nuget

我正在使用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中使用以下扩展名:

  1. VS2013 SP的最新版本。
  2. NodeJS v1.0
  3. NuGet Package Manager v.2.8.60610.756
  4. PostSharp v4.1.23
  5. ReSharper Ultimate v3.0
  6. 我们正在使用TFS进行源代码控制。

    当我构建解决方案时(当我得到更改时),我进入NuGet Restore循环,检查我是否已经拥有该包。

1 个答案:

答案 0 :(得分:0)

您使用的是哪个版本的Nuget?这是因为在VS中使用旧的Nuget包恢复方式(在v 2.7之前)(即右键单击VS解决方案并启用包恢复)。这将导致VS编辑.CSPROJ文件。

从NuGet 2.7开始,NuGet Visual Studio扩展集成到Visual Studio的构建事件中,并在构建开始时恢复缺少的包。默认情况下启用此功能,但开发人员可以根据需要选择退出。 NuGet团队现在推荐的内容(在VS内构建时)既简洁又简单。简而言之,你不做任何特别的事情,它就会发生!这是因为NuGet现在总是在构建VS之前恢复包。因此,您的文件无需任何更改,这很漂亮!

参考:Package Restore Nuget

Package Restore Source