在過去,我一直在使用批處理文件來準備針對不同環境(例如測試,暫存和生產)的發佈包,然後通過各種方法將這些文件複製到網站文件夾中。批處理文件可以運行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文件夾中的每個程序集和文件?