2013-11-28 35 views
1

在過去,我一直在使用批處理文件來準備針對不同環境(例如測試,暫存和生產)的發佈包,然後通過各種方法將這些文件複製到網站文件夾中。批處理文件可以運行XmlPreProcess來爲不同的環境更改web.config。發佈網站不包括一些依賴程序集

最近,我在服務器端安裝Web Deploy 3之後,正在試用VS 2012的發佈Web功能。結果對於Hello World來說看起來不錯。

但是,我有一個WCF應用程序:MyWcfApp.dll依賴於MyWcfContracts.dll和MyWcfImplementation.dll,它們依賴於MyData.dll和MySql.Data.dll,是的,我正在使用MySql。所有這些文件都出現在build文件夾中,比如MyWcfAp \ bin \ Debug。

運行發佈Web時,我得到了一些警告:此連接字符串的數據庫提供程序MySql.Data.MySqlClient不支持增量數據庫發佈。增量數據庫發佈僅支持SqlClient以及實體框架代碼優先模型。

然後,其他相關程序集(如MySql.Data.dll)未被複制到服務器。

顯然,發佈Web通過分析Web.config並進行大量推測,可以做很多「聰明」的事情。

問題1: 使用Publish Web部署WCF服務是否好?

問題2: 是否可以運行一些部署前腳本,比如在部署之前運行XmlPreProcess,以便我可以定位不同的環境?

問題3: 是否有可能要求Publish Web不要分析Web.config,然後複製build文件夾中的每個程序集和文件?

回答

1

對於具體的問題不是抄襲的(問題3)過度依賴,一旦組件:

我與我部署到我的本地文件系統(當時託管在IIS網站小WCF服務應用程序工作)並且存在依賴程序集未被複制到本地文件夾的問題。對我的解決方案有兩個步驟:

  • 在服務的參考,嗨輕每個參考你需要複製,並擊中F4。在新窗口中確保'Copy Local'設置爲'true'。
  • 右鍵單擊服務項目並選擇屬性。點擊「打包/發佈網站」部分,然後從「要部署的項目...」下拉列表中選擇「此項目文件夾中的所有文件」。