2011-06-26 90 views
0

我有一個WiX 3.0 MSI文件,它在安裝應用程序時安裝它,因爲此應用程序作爲自定義操作運行(並使用安裝程序傳遞的會話東西,就像寫日誌..)。作爲一個EXE的WiX MSI和EXE

我需要使用提升的權限運行此安裝,因此我創建了一個以管理員身份運行並運行此MSI文件的「靴帶」 - 並將其傳遞到日誌文件的路徑。

我正在尋找一種方法將這個MSI和EXE打包成一個EXE來發布。我更喜歡做它作爲我的Visual Studio項目的一部分。可能嗎?如果是這樣,怎麼樣?

回答

0

有許多工具可用於構建自解壓縮可執行文件和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應該能夠處理的任務,但我沒有用它尚未嘗試。