如何使用 wix 在 web.config 中生成 machineKey?

How to generate machineKey in web.config using wix?

我需要在我的 Web 应用程序安装程序中生成 machineKey 并将其放入应用程序的 web.config。我该怎么做?

我们需要将答案一分为二:

  1. 生成机器密钥:你需要实现一个自定义操作来生成机器密钥(有很多关于创建自定义操作的教程所以我赢了' 在这里介绍,查看下面的链接)。重要的部分是生成密钥的代码,查看这些链接:C#, Powershell。您可以将结果存储在安装程序 属性 上,您可能需要使其安全 属性 以避免它出现在安装程序日志中。

  2. 将值添加到 Web.config: 有了密钥之后,就可以使用一些wix自定义操作来修改web.config,可以使用XmlConfig or XmlFile。有了这个,您将能够修改 Xml 文件以使用在上一步中创建的 属性 添加 machineKey 节点。查看下面的链接,了解如何使用这些链接更新配置文件。

重要提示:machineKey 元素仅在应用程序根目录的 Web.config 文件中有效,在子文件夹级别无效。

附加链接:

Adding a Custom Action

Editing Web.Config Connection string settings with Wix

Custom actions with C#

How to pass parameters to the custom action?