我最近開始使用Jenkins來簡化應用程序開發。我有一個Asp.net網站,我正在嘗試使用它進行部署。關於構建如何讓ASP.NET WebSite使用正確的程序集(文件引用代替路徑/ GAC)
詳情:
- 該項目從Visual Source Safe中使用詹金斯retreived。
- 然後是使用msbuild編譯
- 一旦它被構建,它就被部署到測試服務器。
編譯運行正常,沒有錯誤,沒有警告。
當我將Web應用程序從PrecompiledWeb文件夾複製到測試服務器時,應用程序崩潰時執行某些操作。我得到的例外是:
Exception type: FileLoadException Exception message: Could not load file or assembly 'Oracle.DataAccess, Version=2.111.7.20, Culture=neutral, PublicKeyToken=89b483f429c47342' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
但是,如果我複製從網站的文件夾中的Web應用程序,一切工作正常。
注意:所有非Microsoft程序集都存儲在解決方案級別的名爲Assemblies的文件夾中。項目中的所有引用都指向了組合。
有沒有一種方法可以找到衝突來自哪裏,所以我可以使用PrecompiledWeb文件夾進行部署。
編輯: 看來我有不止一個程序集在我的項目中引用,但我不知道如何只得到一個。我在對象瀏覽器檢查,我的解決方案選擇,我得到以下
看來,該網站項目是一個造成麻煩(當我從溶液中取出,只有合適的組件中所示對象瀏覽器)。
這是一個網站項目,所以我不能選擇複製本地參考。實際上,添加對WebSite的引用只會將其複製到bin。當我查看屬性頁面中的項目時,不會在那裏添加引用(我的猜測是,它可能會嘗試使用GAC) – Martin 2011-05-19 16:58:29