从解决方案中删除nuget包还原

Wie*_*sma 148 msbuild visual-studio-2010 visual-studio nuget

我使用'Enable NuGet Package Restore'将最近的nuget包恢复功能添加到解决方案中:http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages

然而,它打破了我的构建服务器,我没有时间来修复它,所以我想删除它.据我所知,没有选项,所以我从所有*.csproj文件中手动删除了以下行:

<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
Run Code Online (Sandbox Code Playgroud)

现在的问题是,每次检查我的*.csproj文件或打开我的解决方案时,该行会自动再次添加,如果我不小心检查它就会破坏我的构建:(

我有什么想法可以永久删除它吗?

更新:尽管下面的答案仍然在打开解决方案时仍然会回来,任何有同样问题的人?

Wie*_*sma 212

我看起来不太好,项目文件中添加了另一个属性:

<RestorePackages>true</RestorePackages>
Run Code Online (Sandbox Code Playgroud)

只需从所有*.csproj文件中手动删除此以及所有这些行:

  <Import Project="$(SolutionDir)\.nuget\nuget.targets" />
Run Code Online (Sandbox Code Playgroud)

更新:

原来这是一个持续的小开溜,如果你手动编辑您的项目文件,请务必关闭该解决方案,并立即从项目中删除所有行,否则他们只是再次添加一旦该项目重新加载...

UPDATE2:

从解决方案根目录中删除.nuget文件夹

UPDATE3:

NuGet的更高版本添加了您需要删除的另一部分:

 <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>
Run Code Online (Sandbox Code Playgroud)

UPDATE4

NuGet.Targets位于.nuget文件夹中的内部,有另一个部分被添加到新项目中......将其切换为false.

<!-- We need to ensure packages are restored prior to assembly resolve -->
<BuildDependsOn Condition="$(RestorePackages) == 'false'">
    RestorePackages;
    $(BuildDependsOn);
</BuildDependsOn>
Run Code Online (Sandbox Code Playgroud)

  • 我发现在.csproj文件的末尾还有一个`<Import Project ="$(SolutionDir)\.nuget \nuget.targets"/>`,需要手动删除. (7认同)
  • "确保你关闭解决方案"在这里实际上是至关重要的,因为VS2010似乎缓存了csproj/msbuild文件(没有采取某些修改).我在VS2012中没有注意到这种行为,但是在VisualStudio中修改这些文件时,这一直困扰着我. (7认同)
  • 哈!*慢慢退后*:) (6认同)
  • 这件事一直困扰着我.如果您的项目有许多不同的解决方案,则包恢复功能会导致大量问题. (5认同)
  • 我为NuGet团队创建了一个问题来解决这个问题.请在https://nuget.codeplex.com/workitem/3756上进行投票 (4认同)

ang*_*sen 48

要禁用Nuget Package Restore:

  1. 删除.nuget文件夹
  2. 从所有.csproj文件中删除特定行

要删除的行:

<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
<RestorePackages>true</RestorePackages>
Run Code Online (Sandbox Code Playgroud)

注意:确保在重新加载解决方案之前一次性完成所有更改,否则它会将其添加回来.

这基于以下文章:http: //bartwullems.blogspot.no/2012/08/disable-nuget-package-restore.html

此外,您可能需要仔细检查此选项是否已禁用:http: //docs.nuget.org/docs/workflows/using-nuget-without-committing-packages


ora*_*rad 8

这不是这个设置吗?

选项... - > Nuget包管理器 - > [取消选中]允许Nuget下载丢失的包

在此输入图像描述

我正在使用Visual Studio Professional + Resharper 8.2


Jam*_*adt 5

当前使用MSBuild集成包还原的解决方案可以迁移到自动包还原.据我所知,这应该有助于那些遇到CI构建问题的人.(如果我弄错了,请纠正我).

请参阅nuget网站上的文档:在http://docs.nuget.org/docs/workflows/migrating-to-automatic-package-restore上迁移MSBuild集成解决方案以使用自动包恢复

有和没有TFS转换的信息.

David Ebbo还在http://blog.davidebbo.com/2014/01/the-right-way-to-restore-nuget-packages.html上发布了一些信息.