2013-10-23 72 views
0

我正在使用通過MSI包發佈到IIS網站的WCF服務。我所遇到的問題比任何事情都更令人煩惱,但如果可能的話,我仍然想繞過它。使用「發佈」通過MSI安裝WCF服務Visual Studio輸出

雖然我們正在創建的服務,我們的服務主機上單擊鼠標右鍵,然後選擇「發佈網站」的手段把它發佈到我們的開發服務器。當我們這樣做,下面的文件夾結構安裝:

  • apsnet_client

bin目錄(與DLL文件指的是服務一起),我有一個DLL文件名爲App_Code.dll,其中包含我的Service.cs文件的編譯版本,其中包含實際的服務代碼。

顯然,我們不能使用Visual Studio部署去到現場的環境,所以我創建了一個MSI包來安裝它。 MSI只是從我的服務主機提供內容文件,而沒有其他內容。

當MSI安裝所需的文件時,目錄結構稍有不同。它只是在網站內創建一個App_Code目錄,並將Service.cs文件放在該文件中,而不是存在App_Code.dll文件。這可以工作,我可以訪問服務,但我真的不太熱衷於讓服務實例化代碼,只是爲了訪問服務器而修改任何人。

所以基本上我需要做的是將網站發佈的輸出包含在我的MSI包中,這樣我就能得到預編譯的App_Code - 有沒有辦法做到這一點?在我的解決方案中,無法設置要編譯的文件Service.cs,所以必須有另一種方法來完成。

謝謝。

回答

1

在我的構建過程中,我使用WebDeploy基礎設施,以創建一個使用文件系統WebPublishMethod部署到,我會打電話給「部署」相對目錄pubxml文件。這種模式完全按照它的意圖來模擬網站。然後,我圍繞該結構編寫MSI,並添加IIS元數據。

我不知道你用的是什麼MSI創作工具,但我喜歡使用Windows Installer XML和/或InstallShield。我說和/或因爲我經常使用WiX和IsWiX創建合併模塊來表達站點的內容,然後使用InstallShield Limited Edition來描述IIS元數據。

相關問題