[英]remove nuget package restore from solution
我使用'Enable NuGet Package Restore'将最近的nuget包恢复功能添加到解决方案中: http ://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages
然而,它打破了我的构建服务器,我没有时间来修复它,所以我想删除它。 据我所知,没有选择,所以我从所有* .csproj文件中手动删除了以下行:
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
现在的问题是每次检查我的* .csproj文件或打开我的解决方案时,该行会自动再次添加,如果我不小心检查它会破坏我的构建:(
我有什么想法可以永久删除它吗?
更新:尽管下面的答案仍然在打开解决方案时仍然会回来,任何有同样问题的人?
我看起来不太好,项目文件中添加了另一个属性:
<RestorePackages>true</RestorePackages>
只需从所有* .csproj文件中手动删除此以及所有这些行:
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
更新:
原来它是一个持久的小bugger,如果你手动编辑项目文件,请确保关闭解决方案并立即删除项目中的所有行 ,否则只要项目重新加载就会再次添加...
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>
UPDATE4
里面NuGet.Targets
地处.nuget
文件夹,里面是被添加到新项目的另一部分...它转换为false。
<!-- We need to ensure packages are restored prior to assembly resolve -->
<BuildDependsOn Condition="$(RestorePackages) == 'false'">
RestorePackages;
$(BuildDependsOn);
</BuildDependsOn>
要禁用Nuget Package Restore:
要删除的行:
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
<RestorePackages>true</RestorePackages>
注意:确保在重新加载解决方案之前一次性完成所有更改,否则它会将其添加回来。
这基于以下文章: http : //bartwullems.blogspot.no/2012/08/disable-nuget-package-restore.html
此外,您可能需要仔细检查此选项是否已禁用: http : //docs.nuget.org/docs/workflows/using-nuget-without-committing-packages
这不是这个设置吗?
选项... - > Nuget包管理器 - > [取消选中]允许Nuget下载丢失的包
我正在使用Visual Studio Professional + Resharper 8.2
当前使用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上发布了一些信息。
我们实际上有一篇关于它的博客文章,在帖子的最后,提到了一个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脚本,它将自动 (并递归地) 删除必要的行 : https : //github.com/owen2/AutomaticPackageRestoreMigrationScript/blob/master/migrateToAutomaticPackageRestore.ps1
直接提供Disable NuGet Package Restore选项标记为Will not Fix: https : //nuget.codeplex.com/workitem/1883
我按照接受的解决方案使用2012无济于事。这确实有效,
<RestorePackages>true</RestorePackages>
为<RestorePackages>false</RestorePackages>
并删除<Import Project="$(SolutionDir)\\.nuget\\nuget.targets" />
行 nuget.exe
nuget.exe.NotExe
重命名为nuget.exe.NotExe
对于仍然需要使用旧式NuGet包还原清理项目的任何人, 此处提供的IFix工具可自动执行该过程。
只需运行安装程序( IFix
将添加到PATH
),然后运行以下命令:
IFix nugetrestore --fix
您可以先在检查模式下运行它以查看它将清理的内容:
IFix nugetrestore --check
我遇到过同样的问题。 我最终做了什么:1)进入解决方案中的每个项目.csproj文件,在记事本中打开然后删除部分xml并保存。
2)然后我删除了整个解决方案中的所有package.config文件。
3)然后我不得不删除.nuget和包文件夹。
此时,我有一个完全免费的NuGet解决方案。
4)然后我手动引用任何需要的DLL并点击编译,解决方案像冠军一样运行,而不需要NuGet包。
转到您的解决方案目录,其中包含[$(SolutionDir)\\.nuget\\nuget.targets] .nuget
文件夹和nuget.targets
文件,删除该文件夹,并最后一次从csproj中删除删除行。
这个问题不会再次出现问题了。
删除解决方案中的packages.config文件。
我在VS2012 RC中打开我的项目时意外启用了这个“包恢复”选项并开始出现类似的错误:
“错误1无法找到'C:\\ FolderX \\ SomeProject.nuget \\ nuget.exe'”
要修复错误,我按照上面的说明操作,打开记事本中的每个项目文件并删除该RestorePackage行。
我通过以下步骤解决了这个问题:
1)确保备份所有当前签出的文件更改。
2)从C:\\(映射到TFS的路径)物理删除解决方案文件夹。
3)从TFS获取最新的解决方案。
4)从您在步骤1中执行的备份中复制(如果有)您的更改。
希望有所帮助!
我遇到了完全相同的问题,并尝试从项目文件中删除所有.nuget和RestorePackage标记,但是一个项目只是不会重新加载无论我为.nuget和RestorePackages标记检查它的彻底程度。 我想这里有一些隐藏的引用。
最后,只需复制文件并创建新项目并将其导入解决方案就更容易了。
Nuget糟透了。 只需从有问题的项目的根目录中的packages.config中删除nugets并删除或注释package元素。 改为使用直接引用到某些lib文件夹中。
<?xml version="1.0" encoding="utf-8"?>
<packages>
<!--<package id="EntityFramework" version="6.0.2" targetFramework="net45" />-->
</packages>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.