2

我有一个 nuget 包,其中包含我们所有 Web 项目通用的一堆工件,css、png、layout.cshtml。

一切都很好,直到我需要通过升级我的 nuget 包来将更改应用于项目

对于要替换的每个项目,都会出现此对话框。


微软视觉工作室


错误

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

TF14092: 项目 $/ITEM.BEING.UPGRADED.* 无法更改。此项目的父项有一个挂起的删除,必须首先签入。

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


所以基本上它是说nuget删除了旧项目然后TFS对它们设置了一个删除标志,nuget尝试复制与已删除项目同名的新项目,并且TFS有一个嘶嘶声,因为之前的删除没有被检查还在。

我该如何解决这个问题?

我可以通过仅将具有不同名称的文件放入其中来了解 jquery 包的工作原理,例如 jquery-1.0.js 被删除 jquery-1.1.js 被复制,因此没有冲突。这对我来说并不实用,因为我想使用相同的图像等,而且我不会在每次进行更改时都重命名它们。

4

4 回答 4

3

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

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

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

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

您还可以在 Dll 包中创建对内容包的依赖项(如果您愿意),以便安装 Dll 包会自动触发安装内容包。

这对我有用。

于 2014-04-29T21:29:59.853 回答
2

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

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

谢谢

布瓦

于 2012-11-16T22:42:24.617 回答
1

此缺陷被认为已在早​​期版本的 NuGet 中得到修复。但是,直到 2.8 版本才真正修复它,该版本目前处于测试阶段,应该很快就会发布。

在此处查看问题:

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

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

于 2014-01-27T19:57:18.503 回答
0

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

道格

于 2015-01-07T14:41:00.373 回答