2009-02-11 95 views
6

我希望能夠從VS08生成單個MSI,可用於安裝演示,演示和生產版本的相同的應用程序在同一個網站在同一個IIS。換句話說,用戶需要控制他們想要的實例數 - 我無法通過改變產品代碼來預先生成它們(儘管實際上會有一個現實的上限10 )。 <EDIT>轉換路線需要類似的先驗知識AFAICT(bott suggested this route,雖然它可以工作,但不會帶來很好的客戶體驗)</EDIT>。ASP.NET應用程序MSI安裝程序多個實例

my question其他情況存在,沒有答案在:

理想的答案會與VS08可開箱即用,但我不會感到驚訝,如果這又是一個死以此結束。 (順便說一下,我見過的MSI ASP.NET安裝程序的最佳信息是this scottgu post)。

MSDEPLOY似乎是我的衚衕,所以我一直在尋找包裝它的東西,只是我希望能夠支持像XP和Vista這樣的非服務器操作系統。

我看到即將出現的InstallShield產品的跡象,這似乎正是基於10年前的痛苦,我很想避免,但並不是完全不願意切換到不那麼痛苦的事情。一方面的好處是我的[TeamCity] CI服務器不需要被VS的副本污染,沒有任何理由(不,我肯定不會需要保留它來運行MSTEST:D)。

+0

這還沒有完全解決,所以還沒有被接受 – 2009-11-26 16:39:21

回答

0

我有一個Windows項目,我們使用WIX創建MSI文件。我們爲每個不同的環境都有一個WIX文件。一旦我們的持續集成服務器完成構建,我們會得到一個「安裝」文件夾,其中包含用於開發,測試,模型,&生產的單獨MSI文件。他們每個人都安裝到不同的文件夾與獨立的app.configs。

它並不是像所有你想要的那樣集成到一個MSI中,但它完成了類似的事情。

+0

感謝大衛,我已經做了類似的事情 - 爲了內部目的而定製每個環境的.vdproj。問題是,在用戶被編譯成MSI後,這是不可能的(因此,「我不能通過改變產品代碼預先生成它們」) – 2009-02-11 19:55:21

3

你看過這個嗎? Installing Multiple Instances of Products and Patches

我的建議是使用wix。你可以使用你當前的msi並用「黑暗」反編譯它。 黑暗創建您的msi所需的所有xml文件。 然後您可以使用wix進行更改,之後您可以將這些步驟整合到您的msbuild進程中。

+0

根據http:// msdn。 microsoft.com/en-us/library/aa369528(VS.85).aspx它仍然看起來像我需要預先生成設置。然後你添加一個參數給msiexec來觸發其中一個轉換。 – 2009-02-23 13:49:32