2014-07-24 116 views
1

我最近遇到了在向Azure網站項目的Web部署期間(出於某種原因,此行爲出現不知所云)的問題 - 從屬項目的某些引用程序集不會自動包含在部署包中。Visual Studio 2013 Web部署缺少依賴關係

,所以這是我的項目的一個粗略的結構:引用類庫項目 2)類庫項目引用一些的NuGet包

現在 1)ASP.NET MVC項目,當我的網絡部署ASP將.NET MVC項目發佈到Azure網站 - 並未部署來自引用類庫的所有NuGet封裝程序集(似乎有些是自動包含的,有些則不是)。在本地運行時一切正常。所有必需的程序集都複製到ASP.NET MVC項目的bin文件夾中。

現在,我發現解決此問題的唯一方法是將缺少引用的NuGet包直接添加到ASP.NET MVC項目中。我真的不喜歡這個解決方法 - 因爲它打破了我的項目的模塊化結構。

當然,必須有一種方法來指定哪些程序集將包含在Web Deploy中?我已經嘗試了一些相當廣泛的谷歌搜索主題 - 但沒有產生一個工作解決方案。

+0

你是否檢查過有問題的引用是否將「Copy Local」設置爲true? –

+0

感謝您的評論 - 是的,我已經做到了。全部設置爲「複製本地」。 –

回答

1

嘗試每個違規的NuGet包的以下內容:

  1. 打開包管理器控制檯。確保Default Project下拉菜單設置爲您的MVC項目。

  2. 運行Uninstall-Package [Package Name] -Force

  3. 運行Install-Package [Package Name]

如果你需要保持一個包的特定版本,而不是隻拉在最新的,您可以添加-Version [Version Number]到最後結束命令。

這將基本上刷新包的所有引用和其他引導,然後再次嘗試web部署。