[英]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 自定义操作的工具的有效自定义操作代码。 他展示了VBScript
、 C++
和Installscript
自定义操作。 我没有C#
任何示例代码,但 WiX 自定义操作模板有。
WiX CA 项目: WiX 快速入门链接(包括下载) 。 在 Visual Studio 中,转到“添加新项目...”并选择“C# Custom Action Project for WiX v3” 。 该条目如下所示:
一旦你有了自定义操作项目,日志代码是这样的:
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.