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

151

我向使用“启用NuGet软件包还原”功能的解决方案中添加了最新的NuGet软件包还原功能:http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages

然而,它破坏了我的构建服务器并且我没有时间去修复它,所以我想把它删除。据我所知,没有这样的选项,因此我手动从所有的*.csproj文件中删除了以下行:

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

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

是否有任何想法如何永久删除它?

更新:尽管下面的答案,但每次打开解决方案时它仍然会重新出现,有没有遇到相同问题的人?


2
你不能只是在源代码控制中回滚更改集吗? - Betty
这是一个相当大的变更集,但感谢您的评论,我已经查看了它,似乎还在解决方案路径中添加了一个 .nuget 文件夹,我也将其删除以查看是否可以解决问题。 - Wiebe Tijsma
你成功修复了构建服务器吗?(它是TeamCity吗?)因为你引用的导入项目行是导致我的TeamCity构建失败的原因。 - Baldy
@Baldy 不,我们正在使用 TFS Build,我并没有真正寻找解决方案,只是将其删除了(仍计划以后深入研究)。 - Wiebe Tijsma
3
我已经为NuGet团队创建了一个问题,以解决这个问题。请到 https://nuget.codeplex.com/workitem/3756 上投赞成票。 - deadlydog
这个IFix工具帮助我识别和纠正了文件中需要更新的众多位置。 - carmbrester
15个回答

1

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


0

我通过以下步骤解决了这个问题:

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

2)从您的C:\(映射到TFS的路径)中物理删除解决方案文件夹。

3)从TFS获取您的解决方案的最新版本。

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

希望能帮到您!


0
我在打开VS2012 RC中的项目时意外启用了“包还原”选项,然后开始出现类似以下错误的错误:
“错误 1 无法定位'C:\ FolderX \ SomeProject.nuget \ nuget.exe'”
为了解决这个错误,我按照上述说明打开了每个项目文件,并在记事本中删除了RestorePackage行。

-2

我遇到了完全相同的问题,试图从项目文件中删除所有.nuget和RestorePackage标记,但是一个项目无论我如何彻底检查它的.nuget和RestorePackages标记都无法重新加载。我猜测这里有一些隐藏的引用。

最终,更容易的方法是复制文件并创建一个新项目,然后将其导入到解决方案中。


-9

Nuget太烂了。只需从存在问题的项目的根目录中删除nugets并删除或注释packages.config中的package元素即可。改为直接引用某个lib文件夹。

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

如果你不知道如何使用它并且不努力理解它,那么它就像任何其他产品一样不好用。 - Wiebe Tijsma
这是真的,但在我看来,Nudged不能给你足够的控制权来管理你的项目。此外,Nuget GUI需要进行一些重大升级:
  1. 它不直观;
  2. 管理包很困难;
  3. 关闭还原功能很麻烦;
  4. 下载了不必要的包;
  5. 有时无法还原包。
- Igor N
我在某种程度上同意,尽管我认为这真的比根本没有软件包管理器要好。看起来他们正在为NuGet 3.0进行严肃的GUI升级:http://blog.nuget.org/20141112/nuget-3.0-preview.html - Wiebe Tijsma

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接