2012-11-13 57 views
2

我有一個nuget包,它包含了我們所有web項目css,png,layout.cshtml通用的一組工件。我該如何避免TFS和nuget升級錯誤

一切都很好,直到我需要通過升級我的NuGet包

對於被替換的每個項目,將出現此對話框更改應用到項目中。


微軟的Visual Studio


錯誤

1個錯誤遇到嘗試在1個項目(S)遇到 首先執行出錯的添加操作:

TF14092 :項目$/ITEM.BEING.UPGRADED。*不能更改。該項目的父項具有待定刪除,必須首先檢入。

有關任何其他錯誤的信息,請參見輸出工具窗口。


所以基本上它是說的NuGet刪除的舊項目,然後TFS把刪除標誌對他們的NuGet試圖複製在新的項目具有相同的名稱與已刪除的一個和TFS有噓聲像配合,因爲先前的刪除尚未檢入。

我該如何解決這個問題?

我可以看到jquery包是如何工作的,只把文件放在不同的名稱中,例如jquery-1.0.js被刪除jquery-1.1.js被複制,因此沒有衝突。這對我來說並不實際,因爲我想使用相同的圖像等,而且我不會在每次進行更改時重命名它們。

回答

3

這是涉及到的NuGet和TFS已驗證的漏洞,目前它正在經歷上的NuGet修復週期。

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

我擊中了同樣的錯誤的次數。 我有一個Dll和一堆其他內容文件(CSS,JS,圖像等)的MVC項目 嘗試了許多不同的事情後,我發現以下解決方法的問題。

在沒有任何內容的情況下將所有Dll包裝在單獨的NuGet包中。 將任何其他文件打包到單獨的軟件包中。 將兩個軟件包標記爲合適的,以便用戶可以輕鬆地找到這兩個軟件包並且相互關聯。

您也可以在Dll包中爲Content包創建一個依賴項(如果您願意),以便安裝Dll包會自動觸發安裝內容包。

這爲我工作。

2

您是否嘗試在nuget.config文件中設置「DisableSourceControlIntegration」鍵? 更多細節可在這裏找到@http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages

注意這是特定解決方案,因此必須添加到解決方案中的。\ nuget文件夾下的nuget.config文件中。 「啓用軟件包恢復」會自動添加此文件。

感謝

Bhuva

1

這一缺陷被認爲是固定的NuGet的早期版本。然而,直到目前處於測試階段並且應該很快發佈的2.8版本纔開始實際修復。

見問題在這裏:

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

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

+0

我只是嘗試的NuGet 2.8它β和問題仍然:-( –

+1

存在我與2.8.1嘗試這樣做,問題繼續存在。但是,上述解決辦法讓我在那裏,我想。 – Baz

0

我在過去遇到過這種情況,我懷疑你正在使用本地工作區?嘗試將工作區轉換爲服務器工作區,或者您可以創建第二個工作區並將其用於NuGet更新。

道格