繁体   English   中英

如何在 Wix 安装程序代码中记录自定义消息?

[英]How to log custom messages in Wix Installer code?

这是我在.wxs文件中的 Wix 代码

      <Component Id="MyRootCA.cer" Guid="*" Permanent="yes">
      <File Id="MyRootCAFile.cer" Name="MyRootCA.cer" Source="Assets\Certificates\MyRootCA.cer" />
      <iis:Certificate Id="Certificate.MyRootCA"
                       Name="MyRootCA.cer"
                       Request="no"
                       StoreLocation="localMachine"
                       StoreName="root"
                       Overwrite="no"
                       BinaryKey="MyRootCABinary"/>
     </Component>

安装后证书在机器上成功安装。 现在,我如何记录有关此操作的消息?

我正在执行下面的命令,它生成日志文件

  msiexec /i installer.msi /L*vx c:\work\Test2.log /q 

如何向此日志文件添加自定义消息? 我想为系统添加证书添加成功信息

我正在尝试添加custom action

  <CustomAction Id="CA.LogCertificateInstallation"
                BinaryKey="BI.CA"
                DllEntry="LogCertificateInstallation"
                Execute="deferred"
                Return="check"
                Impersonate="no"/>

如何将此自定义操作链接到上面的Component

重要:如果重要文件未正确安装,您可以通过在 WiX 中以这种方式将Vital attribute设置为 yes 使安装失败:

 <File Source="MyFile.exe" Vital="yes" />

“如果具有msidbFileAttributesVital属性的文件安装失败,安装将停止并回滚” FileTable - 请参阅"Attributes"部分。


默认日志记录:我不经常使用IIS / Certificate element ,但如果它不进行任何日志记录,我会感到非常惊讶。 我会尝试再次阅读日志。 该日志命令应该执行,请检查更多关于日志记录(部分: "Interpreting MSI Log Files" )。

自定义日志记录Robert Dickau 的这份文档显示了任何可以创建 MSI 自定义操作的工具的有效自定义操作代码。 他展示了VBScriptC++Installscript自定义操作。 我没有C#任何示例代码,但 WiX 自定义操作模板有。

WiX CA 项目WiX 快速入门链接(包括下载) 在 Visual Studio 中,转到“添加新项目...”并选择“C# Custom Action Project for WiX v3” 该条目如下所示:

C# 自定义操作

一旦你有了自定义操作项目,日志代码是这样的:

public class CustomActions
{
    [CustomAction]
    public static ActionResult CustomAction1(Session session)
    {
        session.Log("Begin CustomAction1");
        return ActionResult.Success;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM