转换 app.config Service Fabric 来宾可执行文件

Transform app.config Service Fabric guest executable

我正在尝试将现有应用程序托管为 Service Fabric 中的来宾可执行文件。这工作得很好,但现在我面临一个问题,到目前为止我还没有解决方案。

我们的应用程序是使用 .NET 构建的 Windows 服务。它确实包含一个 app.config 文件,其中包含一些特定于环境的配置。在我们当前的平台上,我们创建包并使用 MSDeploy 部署它们。 MSDeploy 支持使用可以转换web.config 文件的参数。这样我们就可以根据我们部署的环境更改配置。

我们如何使用 Service Fabric 中的来宾可执行文件实现此目的?来宾可执行文件和 app.config 被添加到 sfproj 的代码包中。当我们实例化 Service Fabric 应用程序的新实例时,有没有一种方法可以转换 app.config?我知道配置包和 ApplicationParameter 文件,但它们不能转换 app.config 文件,对吗?还有其他方法吗?

实现此目的的一种方法是将 SetupEntryPoint 添加到服务清单以 运行 自定义脚本。在脚本(例如 PowerShell)中,从 Settings.xml(配置包)加载设置并使用这些值替换 app.config 文件中的占位符。

然后您可以使用标准的 Service Fabric 参数文件 (https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-how-to-parameterize-configuration-files) 来设置不同环境的值。

你绝对可以改造app.config。 有一个 NuGet 包 https://github.com/acottais/msbuild.xdt 您必须通过命令行添加转换,但它们的工作方式与 web.config 转换一样。
它也适用于自定义配置。