首先讓我說,如果這對別人沒有意義,請讓我知道。WIX安裝程序安裝在多個位置,然後補丁
這是我的場景......我相信應該可能很簡單。比方說,我有一種情況,安裝到我的安裝程序:
Program Files/MyProduct/Development
我也希望有相同的安裝程序安裝到:
Program Files/MyProduct/Test
這可能與WIX?
另外,如果是這樣,我該如何去補丁?
首先讓我說,如果這對別人沒有意義,請讓我知道。WIX安裝程序安裝在多個位置,然後補丁
這是我的場景......我相信應該可能很簡單。比方說,我有一種情況,安裝到我的安裝程序:
Program Files/MyProduct/Development
我也希望有相同的安裝程序安裝到:
Program Files/MyProduct/Test
這可能與WIX?
另外,如果是這樣,我該如何去補丁?
你試圖把你的手指稱爲多實例安裝程序。我在InstallShield中完成了很多工作,而不是WiX和Major/Minor升級,而不是修補。 Yan在WiX方面做得更多,包括撰寫一些博客文章。
但被警告,這並不簡單。 :-)
以往的INSTALLDIR
或INSTALLLOCATION
是它可以通過命令行或bootstapper設置一個公共屬性。例如: -
msiexec /i setup.msi INSTALLDIR="C:\Program Files\MyProduct\Test"
下面應該讓你安裝並排的一面,我會建議你非常小心使用這種方法,只能用這個發展宗旨。
<?xml version="1.0" encoding="UTF-8"?>
<?if $(var.MyApplication.Configuration) = Debug ?>
<?define UpgradeCode = "<INSERT-DEVELOPMENT-GUID-HERE>" ?>
<?else ?>
<?define UpgradeCode = "<INSERT-RELEASE-GUID-HERE>" ?>
<?endif ?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="*" Name="SetupProject1" Language="1033" Version="1.0.0.0" Manufacturer="SetupProject1" UpgradeCode="$(var.UpgradeCode)">
這種方法使用引用的項目的configuratuion,所以對於這個工作,你需要引用的項目(如上圖所示爲所有MyApplication)。當您爲Debug進行編譯時,這將創建一個具有不同升級代碼的安裝程序。
然後您需要按照@KMoraz所述的方式部署。
嘿謝謝你的迴應!所以它看起來像這樣做,我必須根據安裝次數硬編碼產品ID?我不會提供這些信息,因爲用戶可能會在不同的目錄中安裝X個副本。合理? – aherrick 2012-03-24 15:31:34
瞭解。現實情況是,您需要在前置X數個實例轉換的情況下進行實例轉換,並假定99%的用戶已經足夠了,或者您可以在運行時得到一個更復雜的boostrapper(EXE)生成+1轉換的故事。它可以完成,但是基礎設施要高得多,而且我還沒有遇到過任何人誰也不會對第一個故事感到滿意。例如,即使SQL服務器爲每臺計算機設置了50個實例的限制。 – 2012-03-24 15:44:08
你會寫(可能在C#/ WinForms中)某種封裝,允許最終用戶輕鬆安裝多個實例嗎?我不認爲最終用戶需要知道變換等等。那裏有什麼想法? – aherrick 2012-03-27 22:37:51