2015-11-05 55 views
3

我只需要安裝應用程序的多個實例,將它們保存在不同的文件夾中,桌面上沒有任何快捷方式。 換句話說,當應用程序已經安裝在一個文件夾中,如果我再次雙擊.msi文件,安裝程序不應該問我是否需要修復或刪除我的應用程序,但它應該允許安裝它在一個新的文件夾中。 我該如何解決這個問題?使用Wix工具集安裝應用程序的多個實例

回答

2

在Windows中,您要求的是不正常的。通常,每個程序(產品)只安裝一次。即每個安裝包都有它的ID(稱爲「ProductID」)。如果該ID已在系統中註冊爲已安裝,則系統將不允許安裝具有相同ProductID的第二個產品,但開始更改/刪除。

你可以做什麼:

  • 不要使用Windows安裝程序(和維克斯),使用ZIP例如,或者一些自解壓壓縮包,或者不註冊在已安裝的產品的一些其他程序系統。
  • 如果您希望MSI和Windows Installer出於任何原因,請在安裝前使用命令行更改產品ID。嘗試搜索「使用轉換多次安裝相同的MSI」。因此,您可以在安裝之前進行每個轉換後的相同MSI,以便它看起來與系統不同。
  • 每個用戶安裝,如果這是對你不夠好(即不要安裝到Program Files文件,安裝到用戶文件夾)
  • 也許還有其他的選擇...
4

我曾經工作與之前的這種安裝類似,我會同意@Nikolay--這是一個例外,而不是基於Windows Installer安裝的規則。 Component rules往往難以遵循,多個實例方面在頂部增加了一些複雜性。所以,在你走這條路之前要三思。

複雜,仍然有可能。幾年前,我用WiX 3.6發佈了the article of how to start authoring multiple instance installations。請注意,這個版本的WiX顯着簡化了它。這不是一個簡短的閱讀,所以這裏是一個快速摘要:

  • 您將無法實現「安裝具有雙擊MSI文件的每個新實例」行爲。你必須有一個引導程序 - 將正確的命令行參數傳遞給msiexec.exe
  • 不要試圖支持無限數量的實例 - 嘗試堅持合理的大數字。你想象有人在一臺機器上安裝你的應用10次嗎? 50? 100?做出一個理智的選擇 - 這將是你的<Instance/>元素的數量。
  • 雖然您只需修飾具有MultiInstance屬性的非文件數據組件,但如果將其添加到所有組件中,則不會中斷它。
  • 雖然我在該帖子中解釋了多個實例的修補,但如果沒有其他選擇,我只會在生產中使用它。
相關問題