0

私はapp.configから設定をロードするサードパーティのライブラリを持っています 今度はAzureサービスファブリックで設定します 標準settings.xmlを使用するには多くの作業が必要です。 代わりに、古いapp.configをSF Configフォルダにコピーしてそこから設定をロードしたいと考えています。サービスファブリックのレガシー設定

私が理解できなかった唯一のことは、SFで実行中のConfig/*コンテンツの場所を知る方法です。 私はしかしContext.CodePackageActivationContext.WorkDirectory を得ることができ、そのからのパスは、私が何とかコンテキストに問い合わせることができますパスは .. \ MyClass.ServicePkg.Config.1.0.0 \

のapp.configありさconfigフォルダへの完全なパスを取得するには?

答えて

1

うん、あなたが(「コード」と「コンフィグ」は、Visual Studioのプロジェクトテンプレートのデフォルトの名前です)、あなたのパッケージの名前に置き換えて、あなたのコードとコンフィグパッケージへの絶対パスを取得することができます:

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

サービスパッケージの背景情報の一部here

tl; dr: サービスは、「コード」パッケージ(実行可能ファイルとDLL)と「構成」パッケージ(任意の構成ファイルまたは組み込みのSettings.xml)で構成されます。パッケージはバージョン管理され、相互に独立してアップグレードできます。サービスファブリックエクスプローラで、アプリケーションタイプの[詳細]タブ(「名前」フィールドに注意してください。任意の名前を使用できます。これはGetCodePackageObject()に入れた名前です)。

enter image description here

+0

パーフェクト。ありがとう! –

関連する問題