我有一个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被复制,因此没有冲突。这对我来说并不实用,因为我想使用相同的图像等,每次我做出改变时我都不会重命名它们。
答案 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版本才进行实际修复,该版本目前处于测试阶段,应该很快就会发布。
请参阅此处的问题:
答案 3 :(得分:0)
我以前遇到过这种情况,我怀疑你使用的是本地工作区?尝试将工作区转换为服务器工作区,或者您可以创建第二个工作区并将其用于NuGet更新。
道格