请有人为我提供了针对上述方案的WiX片段或解决方案。我需要在WiX msi中包含pfx文件,用户将通过Internet Explorer将我的msi下载到他的机器上并点击安装,我还需要在他的机器上安装证书。
答案 0 :(得分:9)
您需要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,你需要填写一些
更多属性。请注意,如果您使用CertficatePath
属性,则不需要BinaryKey
。
<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
。
答案 1 :(得分:4)
为了扩展答案,以下一组属性对我有用:
<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文件)。