我该如何避免使用TFS& nuget升级错误

时间:2012-11-13 23:47:55

标签: tfs2010 visual-studio-2012 nuget

我有一个nuget包,它包含了我们所有web项目中常见的一堆工件,css,png,layout.cshtml。

一切都很好,直到我需要通过升级我的nuget包

来对项目进行更改

每个要替换的项目都会显示此对话框。


Microsoft Visual Studio


错误

尝试对1个项目执行添加操作时遇到1个错误 遇到第一个错误:

TF14092:项目$ / ITEM.BEING.UPGRADED。*无法更改。此项目的父项具有待定删除,必须先进行检查。

有关任何其他错误的信息,请参阅输出工具窗口。


所以基本上是说nuget删除了旧项目,然后TFS对它们添加了删除标记,nuget尝试复制新项目与删除的项目同名,TFS有一个合适的,因为之前的删除没有&# 39;已经入住了。

如何解决此问题?

我可以看到jquery包是如何工作的,只是将文件放入不同的名称,例如jquery-1.0.js被删除jquery-1.1.js被复制,因此没有冲突。这对我来说并不实用,因为我想使用相同的图像等,每次我做出改变时我都不会重命名它们。

4 个答案:

答案 0 :(得分:3)

这是与NuGet和TFS相关的经过验证的错误,目前正在NuGet上进行修复。

http://nuget.codeplex.com/workitem/4037

我多次遇到同样的错误。 我有一个MVC项目,包含一些Dll和一些其他内容文件(css,js,图像等) 在尝试了许多不同的事情之后,我发现了以下问题的解决方法。

将所有Dll打包在一个单独的NuGet包中,没有任何内容。 将任何其他文件打包到单独的包中。 标记两个软件包,以便用户可以轻松地找到彼此相关的软件包。

您还可以在Dll包中创建一个依赖于Content包的依赖项(如果您愿意),这样安装Dll包就会自动触发安装内容包。

这对我有用。

答案 1 :(得分:2)

您是否尝试在nuget.config文件中设置“DisableSourceControlIntegration”键? 更多细节可以在@ http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages

找到

请注意,这是特定于解决方案的,因此必须添加到解决方案中。\ nuget文件夹下的nuget.config文件中。 “启用包恢复”会自动添加此文件。

由于

Bhuva

答案 2 :(得分:1)

这个缺陷被认为是在早期版本的NuGet中得到修复。但是,直到2.8版本才进行实际修复,该版本目前处于测试阶段,应该很快就会发布。

请参阅此处的问题:

https://nuget.codeplex.com/workitem/2606

https://nuget.codeplex.com/workitem/1690

答案 3 :(得分:0)

我以前遇到过这种情况,我怀疑你使用的是本地工作区?尝试将工作区转换为服务器工作区,或者您可以创建第二个工作区并将其用于NuGet更新。

道格