2010-04-13 43 views
0

有誰知道我該如何動態創建安裝包,將文件安裝到安裝運行時確定的文件夾中,而不是由用戶確定,而是通過獲取UserAppDataPath針對該特定PC上的特定用戶。Winforms/.Net - 動態創建安裝.exe或腳本

動態地,我的意思是我必須以編程方式創建安裝包作爲另一個進程的一部分。

任何幫助意見非常感謝!

+0

「安裝文件到文件夾」是什麼意思?如果您只想複製一些文件,您可以編寫一個小型控制檯應用程序並調用它。如果你想註冊一些COM,再一個小的控制檯應用程序。如果你想在某個位置創建一些默認設置...小型控制檯應用程序。這取決於「安裝文件」的含義。 – Ando 2010-04-13 07:24:52

+0

你需要動態地闡明你的意思 - 事實上我認爲總體目標需要更清晰一些,任何像樣的安裝工具都會給你提供環境變量,比如用戶應用程序數據路徑 – Murph 2010-04-13 08:09:56

+0

感謝評論,請參閱下面的評論澄清 – Serexx 2010-04-14 04:04:24

回答

0

要構建安裝程序包,可以使用WiX toolset。您的應用程序可以在用戶的​​臨時文件夾中爲其構建.wxs源文件,並調用candle.exe(WiX編譯器)和light.exe(WiX鏈接程序)以生成正確的.msi文件。

要獲取用戶的應用數據路徑的位置,請使用Environment.GetFolderPath方法和ApplicationData參數。

這聽起來很奇怪,我想你要在用戶的機器上構建安裝包。除非您正在構建一個用戶可以使用它們生成的內容生成安裝程序包的工具,否則沒有理由這樣做。 MSI(和WiX工具集)允許您在您的機器上構建一個安裝程序包,以將安裝用戶的應用程序數據文件夾定位到其機器上。

+0

謝謝,我會看看WiX - 澄清:文件是從Expression Web 3插件輸出的,而這些插件又需要由插件用戶分發給其他用戶。我們不希望那些最終用戶不必擔心解壓zip文件,然後找到正確的.exe,WSH腳本或其他應用程序來運行。我們想要一個預先打包好的.exe文件,它只是簡單地提取文件並將它們放在他們應該去的地方。安裝程序不會建立在最終用戶計算機上,而是建立在加載項用戶的計算機上。也許這更清楚,也許不是。 – Serexx 2010-04-14 04:23:14

+0

這實際上使整個場景更清晰。我建議你用這個描述更新這個問題。另外,還不清楚加載項用戶準備的程序包是否需要卸載,以及添加/刪除程序對話框中的最終用戶是否應該可見。 (換句話說 - 你的清理場景是什麼) – 2010-04-14 06:05:42

+0

我問我的原因是因爲WiX可能會對你的方案產生過大的影響,這取決於清理/卸載情況。 – 2010-04-14 06:07:24