我正在尝试将现有应用程序托管为Service Fabric中的来宾可执行文件。这项工作非常顺利,但现在我遇到了一个问题,到目前为止还没有解决方案。
我们的应用程序是使用.NET的Windows服务构建。它包含一个app.config文件,其中包含一些特定于环境的配置。在我们当前的平台上,我们使用MSDeploy创建包并部署它们。 MSDeploy支持使用可以转换web.config文件的参数。这样我们就可以根据部署的环境更改配置。
我们如何使用Service Fabric中的来宾可执行文件实现此目的? guest虚拟机可执行文件和app.config被添加到sfproj的代码包中。有没有办法在实例化Service Fabric应用程序的新实例时转换app.config?我知道配置包和ApplicationParameter文件,但它们无法转换app.config文件,可以吗?还有另一种方法可以做到这一点吗?
答案 0 :(得分:3)
您可能实现此目的的一种方法是向服务清单添加SetupEntryPoint以运行自定义脚本。在脚本(例如PowerShell)中,从Settings.xml(配置包)加载设置,并使用这些值替换app.config文件中的占位符。
然后,您可以使用标准的Service Fabric参数文件(https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-how-to-parameterize-configuration-files)来设置不同环境的值。
答案 1 :(得分:0)
您绝对可以转换app.config。
有一个NuGet包https://github.com/acottais/msbuild.xdt
您将必须通过命令行添加转换,但是它们的工作方式与web.config转换一样。
它也适用于自定义配置。