在带有 .Net Framework 4.X 的 ASP.Net MVC 中,如何在部署管道期间向 web.config 添加密钥?

In ASP.Net MVC with .Net Framework 4.X, how do you add keys to web.config during the deployment pipeline?

使用 .NET 6 或 .NET Core,我可以轻松地将设置、连接字符串等插入环境变量、AWS Key Vault 等。

我如何在 .Net Framework 中做到这一点 4.X?我想在我的 web.config 文件中添加无法转到源代码存储库的设置。转换有点不起作用,因为 web.Release.config 也会进入存储库。

我发现的一些想法:

我避免不惜一切代价更改机器级别的配置文件,因为这对我来说并不容易。但也许这就是完成这项工作的预期方式?

你们如何在部署期间在 web.config 文件中实现生产配置?

Ps.: 我知道我可以使用变量设置我的代码,AWS Key Vault 就像在 .NET Core 中一样。然而,在这种情况下,它是一个巨大的代码库,已经通过应用程序设置、连接字符串等进行了完全配置。

<appSettings> 元素可以指定指向外部文件 (see the second example here) 的文件参数。该文件本身可以添加到 .gitignore,因此您最终得到的设置从未提交给您的存储库。缺点是您必须与任何新开发人员共享该秘密文件的内容。

你的P.S。听起来好像您已经知道 Key Vault 配置,但以防万一,另一种选择是直接 link 到 web.config (link) 中的 Azure Key Vault .这避免了文件共享要求,因为所有机密都在 Azure 中。不过,它特定于 Azure,并且由于您提到了 Amazon Web Services (AWS),可能无法完全解决您的问题。