我有一個WiX 3.0 MSI文件,它在安裝應用程序時安裝它,因爲此應用程序作爲自定義操作運行(並使用安裝程序傳遞的會話東西,就像寫日誌..)。作爲一個EXE的WiX MSI和EXE
我需要使用提升的權限運行此安裝,因此我創建了一個以管理員身份運行並運行此MSI文件的「靴帶」 - 並將其傳遞到日誌文件的路徑。
我正在尋找一種方法將這個MSI和EXE打包成一個EXE來發布。我更喜歡做它作爲我的Visual Studio項目的一部分。可能嗎?如果是這樣,怎麼樣?
我有一個WiX 3.0 MSI文件,它在安裝應用程序時安裝它,因爲此應用程序作爲自定義操作運行(並使用安裝程序傳遞的會話東西,就像寫日誌..)。作爲一個EXE的WiX MSI和EXE
我需要使用提升的權限運行此安裝,因此我創建了一個以管理員身份運行並運行此MSI文件的「靴帶」 - 並將其傳遞到日誌文件的路徑。
我正在尋找一種方法將這個MSI和EXE打包成一個EXE來發布。我更喜歡做它作爲我的Visual Studio項目的一部分。可能嗎?如果是這樣,怎麼樣?
您可能可以將其嵌入到自定義操作中,然後在運行時將其提取並保存到磁盤。
欲瞭解更多信息,請參閱文章Insert any binary file in C# assembly and extract it at runtime。
有許多工具可用於構建自解壓縮可執行文件和Wikipedia lists several of the popular ones。我們最終在MSBuild的後期構建步驟中使用WinRAR來完成此任務。
<Target Name="AfterBuild">
<GenerateBootstrapper
ApplicationFile="$(OutputName).msi"
ApplicationName="$(ProductName)"
BootstrapperItems="@(BootstrapperFile)"
OutputPath="$(OutputPath)"
ComponentsLocation="Relative"
CopyComponents="true"
Culture="en"
Path="$(ProductRoot)\Deployment"/>
<ConvertToAbsolutePath Paths="$(IconFile)">
<Output TaskParameter="AbsolutePaths" PropertyName="IconFile"/>
</ConvertToAbsolutePath>
<ConvertToAbsolutePath Paths="$(BannerFile)">
<Output TaskParameter="AbsolutePaths" PropertyName="BannerFile"/>
</ConvertToAbsolutePath>
<!-- a Adds files to archive -->
<!-- -m Sets compression level (0-store...3-default...5-maximal) -->
<!-- -sfx Sets self-extracting mode -->
<!-- -ep1 Exclude base directory from included file paths -->
<!-- -r Add files recursively -->
<!-- -iadm Request administrator rights -->
<!-- -z Specify sfx configuration file -->
<!-- -iicon<icon.ico> Specify icon to use -->
<!-- -iimg<banner.bmp> Specify splash banner to use -->
<Exec Command='$(ProductRoot)\..\buildTools\WinRAR\winrar.exe a -m3 -sfx -ep1 -r -iadm -iicon$(IconFile) -iimg$(BannerFile) -zsfx_config.txt $(OutputPath)\$(OutputSetupName) $(TargetPath) $(OutputPath)\setup.exe "$(BootstrapperDependency)"'/>
</Target>
在WiX的3.6,Burn應該能夠處理的任務,但我沒有用它尚未嘗試。
這真的很棒,謝謝 – briler