Wix:CustomAction中二进制文件的路径

时间:2010-12-15 20:25:20

标签: c# .net installer wix windows-installer

我的wxs文件中有以下代码

<Directory Id="TempFolder" Name="Temp">
    <Component Id="TempExes" Guid="DF92ED79-28AB-4E88-81F2-8B035D4B8A01" DiskId="1">
          <File Id="CACLS_EXE" Name="CACLS.EXE" Source="Binary\CALCS.EXE" />
    </Component>
</Directory>

现在,当我从安装程序调用自定义操作时,如何获取此exe的路径?我试过了

var pathToExe = session.GetTargetPath("TempFolder") + "CACLS.exe"

哪个不起作用。 有任何想法吗?感谢。

2 个答案:

答案 0 :(得分:1)

为什么您首先要使用自定义操作停止使用CACLS? WiX / MSI已具有built in permissions manipulation功能。保持声明不是必要的,安装程序的质量将大大提高,同时通过不重新发明轮子节省您的时间。

答案 1 :(得分:1)

你有没有尝试过:

<Directory Id="TEMPFOLDER" Name="Temp">
    <Component Id="TempExes" Guid="DF92ED79-28AB-4E88-81F2-8B035D4B8A01" DiskId="1">
      <File Id="CACLS_EXE" Name="CACLS.EXE" Source="Binary\CALCS.EXE" />
    </Component>
</Directory>

var pathToExe = session.GetTargetPath("TEMPFOLDER") + "CACLS.exe"

公共财产全部上限。

我暂时没有使用过wix但是如果我没记错的话,如果您的自定义操作计划在安装过程中运行,系统会对系统进行更改,则必须使用特殊属性能够访问信息。