从解决scheme中删除nuget包恢复

我使用“启用NuGet包恢复”将最近的nuget包恢复function添加到解决scheme中: http ://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages

然而,它打破了我的生成服务器,我没有时间来解决它,所以我想删除它。 据我所知没有select,所以我从我的所有* .csproj文件手动删除以下行:

<Import Project="$(SolutionDir)\.nuget\nuget.targets" /> 

现在的问题是,每次我的* .csproj文件签出或打开我的解决scheme,该行会自动添加,打破我的构build,如果我不小心检查它:(

任何想法,我可以永久删除它?

更新:尽pipe下面的答案,它仍然不断回来打开解决scheme,任何人有同样的问题?

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

 <RestorePackages>true</RestorePackages> 

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

  <Import Project="$(SolutionDir)\.nuget\nuget.targets" /> 

更新:

原来,这是一个持久的小问题,如果你手动编辑你的项目文件, 一定要closures解决scheme,并立即从项目中删除所有行 ,否则只是在项目重新加载时再次添加…

UPDATE2:

也从解决scheme根目录中删除.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> 

UPDATE4

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

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

要禁用Nuget Package Restore:

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

要删除的行:

 <Import Project="$(SolutionDir)\.nuget\nuget.targets" /> <RestorePackages>true</RestorePackages> 

注意:确保您在重新加载解决scheme之前一次完成所有更改,否则会将其添加回去。

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

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

这是不是在这里设置?

选项… – > Nuget Package Manager – > [uncheck]允许Nuget下载缺less的软件包

在这里输入图像说明

我正在使用Visual Studio专业版+ Resharper 8.2

目前使用MSBuild集成软件包还原的解决scheme可以迁移到自动软件包还原。 据我所知,这应该帮助那些遇到CI的人build立问题。 (如果我错了,请纠正我)。

请参阅nuget网站上的文档:迁移MSBuild集成解决scheme以使用自动软件包还原: http ://docs.nuget.org/docs/workflows/migrating-to-automatic-package-restore

有没有TFS转换的信息。

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

实际上我们有一篇关于它的博客文章,在post末尾提到了一个powershell脚本来帮助迁移。

http://docs.nuget.org/docs/workflows/migrating-to-automatic-package-restore

NuGet有关于迁移到自动包恢复的博客文章: http : //docs.nuget.org/docs/workflows/migrating-to-automatic-package-restore

有一个powershell脚本在博客文章中引用,将负责自动 (和recursion) 删除必要的行 : https : //github.com/owen2/AutomaticPackageRestoreMigrationScript/blob/master/migrateToAutomaticPackageRestore.ps1

直接提供禁用NuGet软件包恢复选项标记为不会修复: https : //nuget.codeplex.com/workitem/1883

我遵循接受的解决scheme无济于事2012年。虽然这确实工作,

  1. 完全closuresVS
  2. <RestorePackages>true</RestorePackages><RestorePackages>false</RestorePackages>并删除<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
  3. nuget.exe nuget.exe.NotExe重命名为nuget.exe.NotExe

对于任何需要使用旧式NuGet包恢复来清理项目的人来说, 这里提供的IFix工具可以自动完成这个过程。

只需运行安装程序( IFix将被添加到PATH ),然后运行以下命令:

 IFix nugetrestore --fix 

您可以先在检查模式下运行它,看看它会清理:

 IFix nugetrestore --check 

我遇到过同样的问题。 我最终做了什么:1)进入解决scheme中的每个项目.csproj文件,在记事本中打开,然后删除部分的XML和保存。

2)然后我删除了整个解决scheme中的所有package.config文件。

3)然后,我不得不删除.nuget和包文件夹。

在这一点上,我有一个完全的NuGet免费的解决scheme。

4)然后我手动引用任何需要的DLL,并编译和解决scheme运行像一个冠军,而不需要NuGet包。

转到您的解决scheme目录,其中包含[$(SolutionDir)\.nuget\nuget.targets] .nuget文件夹和nuget.targets文件,删除该文件夹,并将上一次从csproj中删除行。

这个问题不会再回到你身上。

我在VS2012 RC中打开我的项目时,不小心启用了这个“包恢复”选项,并开始得到如下所示的错误:

“错误1无法find'C:\ FolderX \ SomeProject.nuget \ nuget.exe'”

为了修复错误,我按照上面的说明,打开记事本中的每个项目文件,并删除该RestorePackage行。

我能够通过采取以下步骤来解决这个问题:

1)确保您备份所有当前签出的文件更改。

2)从C:\(映射到TFS的path)物理删除解决scheme文件夹。

3)为您的解决scheme获取最新的TFS。

4)复制(如果有的话)您在步骤1中备份的更改。

希望有所帮助!

删除解决scheme中的packages.config文件。

我遇到了完全相同的问题,并试图从项目文件中删除所有的.nuget和RestorePackage标签,但一个项目不会重新加载,不pipe我仔细检查.nuget和RestorePackages标签。 我猜这里有一些隐藏的引用。

最后,只需复制文件并创build一个新项目并将其导入到解决scheme中就更容易了。

Nuget很糟糕。 只要从项目的根目录中的packages.config中删除或者注释package元素就可以了。 而是直接引用到一些lib文件夹中。

 <?xml version="1.0" encoding="utf-8"?> <packages> <!--<package id="EntityFramework" version="6.0.2" targetFramework="net45" />--> </packages>