在安装期间运行可执行文件并在之后删除它

时间:2012-11-30 03:15:27

标签: c# .net wix

我有一个WIX项目,并希望在复制所有文件时执行.exe。但我不希望这个.exe被“安装”。我怎样才能做到这一点?原因是,我的安装程序将文件放在IIS中的虚拟文件夹中,并且在安装后将.exe放在那里不是一个选项。

2 个答案:

答案 0 :(得分:0)

我选择将文件放在通过IIS无法访问的文件夹中,以便在安装过程中需要运行.exe的每个安装程序都指向该文件。例如:

<Property Id="EXEAPPLOCATION">
      <DirectorySearch Id="mpfAppFolder" Depth="1" Path="C:\Program Files\mypath\Tools\">
        <FileSearch Id="my.exe" Name="my.exe"  />
      </DirectorySearch>
    </Property>


    <CustomAction Id="RunExecutable" 
                  Property="EXEAPPLOCATION" 
                  ExeCommand='-source="c:\test.txt"'
                  Execute="deferred" 
                  Return="check" 
                  Impersonate="no"/>

答案 1 :(得分:0)

您可以使用SfxCa.exe将exe打包在自定义动作包装器DLL中。这会导致exe在安装期间被提取到临时目录并在之后被删除。然后,可以使用自定义操作在安装期间执行该文件。这对于运行临时exe来说是一种更清洁的方法。