2015-09-18 77 views
3

我有一個Web API項目,它對System.Web.Http.WebHost有依賴關係,在我的項目中,我已經在該參考上設置了Copy Local = True,並且版本(在本例中)是5.2.3.0。Web部署發佈程序集的錯誤版本

當我通過web部署將項目發佈到服務器時,發佈此程序集的較舊版本(5.2.2.x)。這似乎隻影響某些人在發佈時而不是其他人。

我們已經遇到了與其他項目中的其他程序集相同的問題,所以這就是一個例子。我可以將受影響的程序集添加到服務器的GAC或其他內容中,以便在受影響的用戶發佈時不會死亡,但我想知道這是怎麼發生的以及如何避免它。

+0

我也有這個問題,除了與Autofac。這是VS 2015嗎? –

+0

@Loren是的,儘管一些受影響的開發人員也在使用VS 2013,所以它似乎沒有特別與IDE版本綁定。 – k3davis

回答

11

就我而言,我發現部署了錯誤版本的Autofac,即使在本地運行時引用了正確的版本並將其放入bin文件夾。我重新安裝了NuGet軟件包,甚至無法使用。

最終,我發現obj\Release\Package\PackageTmp\bin目錄(在項目目錄中)包含過時的版本,並且我所做的任何操作都不會導致它更新。只需刪除目錄並讓其重新生成即可解決問題。

+1

我試過重新安裝Nuget,所有的軟件包,沒有任何幫助。花了4個小時拉出我的頭髮後,我找到了你的答案。它解決了我的問題。謝謝! – Misiu

+0

我有一個與System.Web.Http 5.2.2 - > 5.2.3類似的問題,並在Visual Studio 2015中執行Clean從obj中刪除了PackageTmp文件夾。我們現在建議我們的團隊在每次發佈前執行清理。 – Stewart

相關問題