.net 通过wix创建的合并模块添加dll自定义操作以安装shield限量版项目

.net 通过wix创建的合并模块添加dll自定义操作以安装shield限量版项目,.net,wix,installshield,setup-project,orca,.net,Wix,Installshield,Setup Project,Orca,我已创建此wix合并模块项目,并向其中添加了dll自定义操作: <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"> <Module Id="MergeModule1" Language="1033" Version="1.0.0.0"> <Package Id="cffa568e-1bf0-4eb3-bee3-eb5801a0bbd0" Manufacturer="Microsoft" Insta

我已创建此wix合并模块项目,并向其中添加了dll自定义操作:

<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <Module Id="MergeModule1" Language="1033" Version="1.0.0.0">
    <Package Id="cffa568e-1bf0-4eb3-bee3-eb5801a0bbd0" Manufacturer="Microsoft" InstallerVersion="200" />

    <Binary Id="myCustomActionsDLL" SourceFile="CustomAction1.CA.dll" />

    <CustomAction
    Id="CA_myCustomAction"
    BinaryKey="myCustomActionsDLL"
    DllEntry="CustomAction1"
    Execute="deferred"
    Return="asyncWait" />

    <InstallExecuteSequence>
      <Custom Action="CA_myCustomAction" Before="InstallFinalize" />
    </InstallExecuteSequence>

  </Module>
</Wix>
当我打开在ORCA中创建的MSI文件时,我可以看到
自定义操作
InstallExecuteSequence
表中


无法执行该日志的原因是什么?

您的故障排除应首先捕获详细日志,然后读取错误

msiexec/I foo.msi/l*v install.log

我猜如果您添加Impersonate=“no”属性并将Return属性更改为“check”,您将获得更好的结果

我一直使用InstallShield限量版的WiX合并模块。我建议阅读以下内容:


故障排除应首先捕获详细日志,然后读取错误

msiexec/I foo.msi/l*v install.log

我猜如果您添加Impersonate=“no”属性并将Return属性更改为“check”,您将获得更好的结果

我一直使用InstallShield限量版的WiX合并模块。我建议阅读以下内容:


您能帮我在自定义操作中获取属性吗?我尝试了session[“SourceDir”],session.GetSourceDir(“”),但没有成功。我在某个地方读到属性在延迟操作中不可用。获取源目录和目标目录的方法是什么?Google“dtf customactiondata”也读到:你能帮我解决这个问题吗:你能帮我获取自定义操作中的属性吗?我尝试了session[“SourceDir”],session.GetSourceDir(“”),但没有成功。我在某个地方读到属性在延迟操作中不可用。获取源目录和目标目录的方法是什么?Google“dtf customactiondata”也可以这样读:你能帮我回答这个问题吗:
[CustomAction]
        public static ActionResult CustomAction1(Session session)
        {
            File.WriteAllText(@"c:\test.txt", session.GetTargetPath("") + "-----" + session.GetSourcePath(""));

            return ActionResult.Failure;
        }