如何在 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"/>
我如何 link 此自定义操作到上面 Component
?
Vital: You can make a setup fail if a vital file is not correctly installed by setting the Vital attribute
to yes in WiX
in this fashion:
<File Source="MyFile.exe" Vital="yes" />
"If the installation of a file with the msidbFileAttributesVital
attribute fails, the installation stops and is rolled back". FileTable - see "Attributes"
section.
默认日志记录:我不经常使用IIS / Certificate element
,但如果它不进行任何日志记录,我会感到非常惊讶。我会尝试再次阅读日志。该日志命令应该执行,请检查 (部分:"Interpreting MSI Log Files"
)。
自定义日志记录:This document from Robert Dickau 显示可创建 MSI 自定义操作的任何工具的有效自定义操作代码。他显示VBScript
、C++
和Installscript
自定义动作。我没有 C#
的任何示例代码,但 WiX 自定义操作模板有。
WiX CA 项目:WiX Quick Start Links (including downloads)。在 Visual Studio 中,转到 "Add new project..." 和 select "C# Custom Action Project for WiX v3"。该条目看起来像这样:
有了自定义操作项目后,日志记录代码如下所示:
public class CustomActions
{
[CustomAction]
public static ActionResult CustomAction1(Session session)
{
session.Log("Begin CustomAction1");
return ActionResult.Success;
}
}
这是我在 .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"/>
我如何 link 此自定义操作到上面 Component
?
Vital: You can make a setup fail if a vital file is not correctly installed by setting the
Vital attribute
to yes in WiX in this fashion:<File Source="MyFile.exe" Vital="yes" />
"If the installation of a file with the
msidbFileAttributesVital
attribute fails, the installation stops and is rolled back". FileTable - see"Attributes"
section.
默认日志记录:我不经常使用IIS / Certificate element
,但如果它不进行任何日志记录,我会感到非常惊讶。我会尝试再次阅读日志。该日志命令应该执行,请检查 "Interpreting MSI Log Files"
)。
自定义日志记录:This document from Robert Dickau 显示可创建 MSI 自定义操作的任何工具的有效自定义操作代码。他显示VBScript
、C++
和Installscript
自定义动作。我没有 C#
的任何示例代码,但 WiX 自定义操作模板有。
WiX CA 项目:WiX Quick Start Links (including downloads)。在 Visual Studio 中,转到 "Add new project..." 和 select "C# Custom Action Project for WiX v3"。该条目看起来像这样:
有了自定义操作项目后,日志记录代码如下所示:
public class CustomActions
{
[CustomAction]
public static ActionResult CustomAction1(Session session)
{
session.Log("Begin CustomAction1");
return ActionResult.Success;
}
}