2014-02-26 138 views
2

使用Windows Azure託管一些生產網站。今天我嘗試了「階段性發布」(http://www.windowsazure.com/en-us/documentation/articles/web-sites-staged-publishing/)功能,但是Im有一些問題...將DLL部署到Azure網站時缺少DLL

我登錄到我的構建機器,下載適當版本的代碼,構建並部署到Azure上的TEST網站。我登錄到TEST,點擊周圍,一切都很好。

然後,我將發佈設置更新爲指向Azure分段部署網站。當我部署時,我黃屏顯示「無法加載文件或程序集」Microsoft.Practices.ServiceLocation,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依賴項之一。系統找不到指定的文件「。

因此,我從一臺機器部署,一個部署是好的,另一個沒有。我改變的唯一的另一件事是發佈時的「解決方案配置」。當我發佈測試時,我使用一種配置,當我發佈到我的「上演」環境時,這是另一種配置。

編輯:我部署到我的測試ENV時,他上演的解決方案配置和精緻的部署東西..所以我想我刪除的解決方案配置是問題的一部分的可能性..

有沒有人其他人遇到了這個?不知道這是一個分階段的部署問題..或Visual Studio的東西。謝謝!

+0

您是否已將Visual Studio中該程序集引用的'Copy Local'屬性設置爲'true'?也許它在你的測試盒上的GAC中,而不是在你的演示盒上? –

+0

謝謝@TroyCarlson,所有本地DLL都設置爲Copy Local。當我讓我的編譯機運行時,這個DLL在我的身邊是一根刺,而且在PC上安裝Microsoft Ent Library之前,機器不會運行該站點。自從我成功部署後,我認爲這個問題在我身後... – ewitkows

回答

1

不知道爲什麼它是如此零星的,但最終,它確實與我引用的DLL有關,包括在我的項目中。我發佈到本地目錄,看看bin目錄,發現在黃色屏幕上引用的DLL不在那裏。最後,我找到了合適的副本,將它們添加到我的網站項目中的本地「lib」目錄中,然後添加了對它們的直接引用,以便它們在隨後的發佈中可用。

+0

在過去的幾個星期裏,你的確切問題一直讓我瘋狂。更因爲它是零星的。我無法確定一個原因。發佈到一個部署插槽,它的吱吱聲時間在等待,看看我是否會因爲一個DLL(並且總是是同一個DLL)「缺失」而導致死亡的黃色屏幕。這可能與'發佈前的預編譯'設置有關,但我仍然無法確定。 – oflahero

+0

無論如何,由於有問題的DLL是我的項目DLL之一,添加一個特殊的lib目錄不是一個選項。這個該死的東西是從另一個DLL(*會*發佈)顯式引用的,所以我簡單地問爲什麼,爲什麼,o Azure Gods,爲什麼。 (CopyLocal爲true等等) – oflahero