Service Fabric 旧版设置

Service Fabric Legacy Settings

我有一个从 app.config 加载配置的第 3 方库 现在我想通过 Azure Service Fabric 配置它 使用标准 settings.xml 将需要大量工作。 相反,我希望简单地将旧的 app.config 复制到 SF Config 文件夹并从那里加载配置。

基本上我唯一想不通的是如何知道运行 在SF 中Config/* 内容所在的路径。 我可以得到 Context.CodePackageActivationContext.WorkDirectory 但是,从那开始的路径是 ..\MyClass.ServicePkg.Config.1.0.0\app.config

有没有我可以以某种方式查询上下文以获得配置文件夹的完整路径的路径?

是的,您可以获得代码和配置包的绝对路径,替换包的名称("Code" 和 "Config" 是 Visual Studio 项目模板中的默认名称):

string codePackagePath = this.Context.CodePackageActivationContext.GetCodePackageObject("Code").Path;
string configPackagePath = this.Context.CodePackageActivationContext.GetConfigurationPackageObject("Config").Path;

关于服务打包的一些背景信息here

tl;博士: 服务由 "code" 个包(您的可执行文件和 DLL)和 "config" 个包(任意配置文件或内置 Settings.xml)组成。包可以彼此独立地进行版本控制和升级。您可以在应用程序类型的 "Details" 选项卡下的 Service Fabric Explorer 中看到这一点(请注意 "Name" 字段 - 您可以使用您想要的任何名称,这就是您在 GetCodePackageObject() 中输入的名称)。