使用 WiX 在 Windows 中的用户存储中安装 pfx 证书

发布于 2024-08-15 20:43:40 字数 123 浏览 3 评论 0原文

请有人为我提供上述场景的 WiX 片段或解决方案。我需要将 pfx 文件包含在 WiX msi 中,用户将通过 Internet Explorer 将我的 msi 下载到他的计算机上,然后单击安装,我还需要将证书安装在他的计算机上。

Please, can someone provide me with a WiX snippet or solution for the mentioned scenario. I need to include the pfx file in the WiX msi and the user will download my msi to his machine via the internet explorer and Click install and I need also the certificate to be installed on his machine.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

不回头走下去 2024-08-22 20:43:40

您需要证书元素。它是 wix 的 IIS 扩展的一部分,但也可用于非 IIS 相关的安装。

您需要

  1. 声明 iis 命名空间的前缀,例如
    根 Wix 元素中的示例如下:

    
    
  2. 将 PFX 文件作为二进制文件嵌入
    流到您的安装包中。添加
    下的 Binary 元素
    像这样的产品元素:

    <二进制 Id="MyCertificateBinaryStream" 
       SourceFile="c:/path/to/mycertificate.pfx" />
    
  3. 使用 元素声明一个组件,例如
    像这样的例子。看看
    文档,您需要填写一些
    更多属性。请注意,如果您使用 BinaryKey 属性,则不需要 CertficatePath

    
       >
    
    
  4. 通过添加激活 IIS 扩展
    选项-ext WixIISExtension
    调用 wix 命令行工具时的选项。如果您使用 Visual Studio,只需在 Wix 项目中添加对 WixIISExtension 的引用即可。

You need the Certificate element. It is part of the IIS extension for wix, but can be used for non-IIS related installations also.

You need to

  1. declare a prefix for the iis namespace, for
    example like this in the root Wix element:

    <Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'
       xmlns:iis='http://schemas.microsoft.com/wix/IIsExtension'>
    
  2. Embed the PFX file as a binary
    stream in your install package. Add
    a Binary element under the
    product element like this:

    <Binary Id="MyCertificateBinaryStream" 
       SourceFile="c:/path/to/mycertificate.pfx" />
    
  3. Declare a component with a <iis:Certificate> element, for
    example like this. Look at the
    documentation, you need to fill in some
    more attributes. Note that you don't need CertficatePath if you use the BinaryKey attribute.

    <Component Id="MyCertificateComponent" Guid="MY-GUID-HERE">
       <iis:Certificate Id="MyCertificate"
          BinaryKey="MyCertificateBinaryStream"
          ... some more attributes ...                  
       />
    </Component>
    
  4. Activate the IIS extension by adding
    the option -ext WixIISExtension
    option when invoking the wix command line tools. If you use visual studio, this is just a matter of adding a reference in your wix project to WixIISExtension.

泅人 2024-08-22 20:43:40

为了稍微扩展一下答案,以下属性集对我有用:

<iis:Certificate 
    Id="My.Certificate" 
    StoreName="root" 
    Overwrite="yes" 
    Name="My Friendly Certificate Name" 
    Request="no" 
    BinaryKey="MyCertificate.Binary" 
    StoreLocation="localMachine" />

其中 元素包含 子元素,如下所示:(

<Binary 
    Id="MyCertificate.Binary" 
    SourceFile="$(var.ProjectDir)MyCertificate.pfx" />

我将 PFX 文件包含在我的 WiX 项目中)。

To expand on the answer a little, the following set of attributes worked for me:

<iis:Certificate 
    Id="My.Certificate" 
    StoreName="root" 
    Overwrite="yes" 
    Name="My Friendly Certificate Name" 
    Request="no" 
    BinaryKey="MyCertificate.Binary" 
    StoreLocation="localMachine" />

Where the <Product> element contained a <Binary> child as follows:

<Binary 
    Id="MyCertificate.Binary" 
    SourceFile="$(var.ProjectDir)MyCertificate.pfx" />

(I included the PFX file within my WiX project).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文