【发布时间】:2009-12-24 08:44:13
【问题描述】:
请有人为我提供上述场景的 WiX sn-p 或解决方案。我需要在 WiX msi 中包含 pfx 文件,用户将通过 Internet Explorer 将我的 msi 下载到他的机器上,然后单击安装,我还需要在他的机器上安装证书。
【问题讨论】:
标签: installation wix certificate pfx
请有人为我提供上述场景的 WiX sn-p 或解决方案。我需要在 WiX msi 中包含 pfx 文件,用户将通过 Internet Explorer 将我的 msi 下载到他的机器上,然后单击安装,我还需要在他的机器上安装证书。
【问题讨论】:
标签: installation wix certificate pfx
您需要Certificate element。它是 wix 的 IIS 扩展的一部分,但也可用于非 IIS 相关的安装。
你需要
为 iis 命名空间声明一个前缀,用于 像这样在根 Wix 元素中的示例:
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'
xmlns:iis='http://schemas.microsoft.com/wix/IIsExtension'>
将 PFX 文件嵌入为二进制文件 在您的安装包中流式传输。添加 下的 Binary 元素 像这样的产品元素:
<Binary Id="MyCertificateBinaryStream"
SourceFile="c:/path/to/mycertificate.pfx" />
用<iis:Certificate> 元素声明一个组件,用于
像这样的例子。看着那(这
documentation,需要填写一些
更多属性。请注意,如果您使用 BinaryKey 属性,则不需要 CertficatePath。
<Component Id="MyCertificateComponent" Guid="MY-GUID-HERE">
<iis:Certificate Id="MyCertificate"
BinaryKey="MyCertificateBinaryStream"
... some more attributes ...
/>
</Component>
通过添加激活 IIS 扩展
选项-ext WixIISExtension
调用 wix 命令行工具时的选项。如果您使用 Visual Studio,只需在您的 wix 项目中添加对 WixIISExtension 的引用即可。
【讨论】:
为了稍微扩展答案,以下一组属性对我有用:
<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" />
(我将 PFX 文件包含在我的 WiX 项目中)。
【讨论】: