拜托,有人可以为我提供上述场景的 WiX 片段或解决方案吗?我需要在 WiX msi 中包含 pfx 文件,用户将通过 Internet Explorer 将我的 msi 下载到他的机器上,然后单击安装,我还需要在他的机器上安装证书。
问问题
7388 次
2 回答
11
您需要Certificate 元素。它是 wix 的 IIS 扩展的一部分,但也可用于非 IIS 相关的安装。
你需要
为 iis 命名空间声明一个前缀,例如在根 Wix 元素中如下所示:
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi' xmlns:iis='http://schemas.microsoft.com/wix/IIsExtension'>
将 PFX 文件作为二进制流嵌入到您的安装包中。在 product 元素下添加一个Binary元素,如下所示:
<Binary Id="MyCertificateBinaryStream" SourceFile="c:/path/to/mycertificate.pfx" />
用一个元素声明一个组件
<iis:Certificate>
,例如这样。看 文档,需要多填一些属性。CertficatePath
请注意,如果您使用该BinaryKey
属性,则不需要。<Component Id="MyCertificateComponent" Guid="MY-GUID-HERE"> <iis:Certificate Id="MyCertificate" BinaryKey="MyCertificateBinaryStream" ... some more attributes ... /> </Component>
-ext WixIISExtension
通过在调用 wix 命令行工具时添加 option 选项来激活 IIS 扩展。如果你使用 Visual Studio,这只是在你的 wix 项目中添加一个引用到WixIISExtension
.
于 2009-12-24T14:01:59.317 回答
6
为了稍微扩展答案,以下一组属性对我有用:
<iis:Certificate
Id="My.Certificate"
StoreName="root"
Overwrite="yes"
Name="My Friendly Certificate Name"
Request="no"
BinaryKey="MyCertificate.Binary"
StoreLocation="localMachine" />
元素<Product>
包含<Binary>
子元素的位置如下:
<Binary
Id="MyCertificate.Binary"
SourceFile="$(var.ProjectDir)MyCertificate.pfx" />
(我在我的 WiX 项目中包含了 PFX 文件)。
于 2011-02-17T10:38:43.297 回答