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

本文关键字:项目文件 启动 studio 2013 Nuget Visual | 更新日期: 2023-09-27 18:19:32

我使用的是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软件包管理器v.2.8.60610.756
  4. PostSharp 4.1.23版
  5. ReSharper Ultimate v3.0

我们正在使用TFS进行源代码管理。

当我构建解决方案时(当我得到对的更改时),我进入一个NuGet-Restore循环,它会检查我是否已经有了包。

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

您正在使用哪个版本的Nuget?之所以会发生这种情况,是因为在VS中使用了Nuget包还原的旧方法(2.7版本之前)(即右键单击VS解决方案并启用包还原)。这将导致VS编辑.CSPROJ文件。

从NuGet 2.7开始,NuGet Visual Studio扩展集成到Visual Studio的生成事件中,并在生成开始时恢复丢失的包。默认情况下会启用此功能,但如果需要,开发人员可以选择退出。NuGet团队现在推荐的(在VS中构建时)既干净又简单。简而言之,你没有做任何特别的事情,它只是发生了!这是因为NuGet现在总是在VS中构建之前恢复包。所以不需要对文件进行任何更改,这很漂亮!

参考:包还原Nuget

包还原源