PowerShellにapp.config
ファイルを使用させる方法はありますか?いくつかの.NET DLLをスクリプトの1つで使用したいと思っていますが、自分の設定セクションがapp.config
/web.config
に存在することを期待しています。PowerShell App.Config
答えて
同じ質問で私を助けたこのスレッドとのクロスリファレンス: Subsonic Access To App.Config Connection Strings From Referenced DLL in Powershell Script
私はコンフィグ設定が必要なDLLを呼び出す前に、私のスクリプトに以下を追加して、$のはconfigpathはの場所でありますロードしたいファイル:
[appdomain]::CurrentDomain.SetData("APP_CONFIG_FILE", $configpath)
Add-Type -AssemblyName System.Configuration
私は設定がpowershell.exe.configのpowershellディレクトリになければならないと思っていますが、それはやり方が悪いようです。
ConfigurationManager.OpenMappedExeConfigurationを使用すると、アプリケーションexeではなく実行中のDLL名に基づいて構成ファイルを開くことができますが、明らかにDLLの変更が必要になります。
古い質問に対する新しい回答を試みています。
私は現代の答えがそうであると思います:それをしないでください。 PowerShellはシェルです。シェルの部分間で情報を渡す通常の方法は、シェル変数です。設定が慣例は、環境変数を使用することですプロセスの境界を越えて継承されることが予想されている場合は
$global:MyComponent_MySetting = '12'
# i.e.
$PSDefaultParameterValues
$ErrorActionPreference
:PowerShellのそれは次のようになります。これをC#/ PowerShell境界を越える設定に拡張します。いくつかの例:
$env:PATH
$env:PSModulePath
これは.NET用の反パターンだと思う場合は、再検討してください。これはPAASでホストされるアプリケーションの標準であり、サーバー最適化CLR(ASP.NET v5)で実行されるASP.NETの新しいデフォルトになります。
はhttps://github.com/JabbR/JabbRv2/blob/dev/src/JabbR/Startup.cs#L21
を参照してください。注:執筆の時点で、私はそれを自分自身を尋ねるなど、この質問を数回再訪しまし.AddEnvironmentVariables()
にリンクしています。私は、PowerShellのものが<appSettings>
でうまく動作しないと言って、地面に賭けたいと思っていました。 IMOでは、これに関して.NETの側面よりもPSのシェルの側面を受け入れるほうがはるかに優れています。
複雑な設定が必要な場合は、JSON文字列を使用します。 POSH v3 +はConvertFrom-JSONを内蔵しています。プロセス内のすべてが同じ複雑な構成を使用する場合は、それを.jsonファイルに入れ、環境変数からそのファイルを参照します。単一のファイルがPATH
パターンのような十分に確立ソリューションがあります十分ではない場合
は、GITは解像度、または(私はここでは繰り返しません)ASP.NETのweb.configファイル解像度を.gitignore。
- 1. Powershell App.configを使用する.NETアセンブリを呼び出す
- 2. PowerShellから実行される.NetアセンブリのApp.config
- 3. app.configグローバリゼーション
- 4. app.config weirdness
- 5. 共有ライブラリApp.Config
- 6. App.config:ユーザー対アプリケーションスコープ
- 7. App.configの問題
- 8. app.configファイルのコンセプト
- 9. Windowsサービスアプリケーションapp.config
- 10. カスタムapp.configをコンフィグセクションハンドラ
- 11. app.config - configSections - sectionGroup:allowExeDefinition = "MachineToLocalUser"
- 12. App.configカスタムセクションのタイプ
- 13. コンソールアプリケーションとApp.config
- 14. log4net app.configなし
- 15. App.ConfigのC#エンドポイント
- 16. WPF App.config System.TypeInitializationException
- 17. のapp.configは
- 18. dataset.xsd with ** NO ** app.config
- 19. エスケープ&App.configファイル
- 20. app.config暗号化
- 21. Clickonceとapp.config
- 22. XunitのApp.config
- 23. Settings.settings対app.config?
- 24. secureing app.config - VB.Net 3.5
- 25. カスタムコンフィグレーションセクションとapp.config
- 26. XBAPのApp.configファイル
- 27. コンソールアプリケーションのApp.ConfigファイルC#
- 28. asp.netコアのapp.config deployement
- 29. app.configの重複キー
- 30. app.configを変更値
うわー...これらすべての年後の答え:)。ありがとう、私はこれを撃つだろう。 – Kev
+1ありがとうございました!この問題を解決するネット上の唯一の解決策は、 'ConfigurationManager.OpenMappedExeConfiguration'であり、参照されるアセンブリを制御できないシナリオはありません。これは私の場合に最適です。 – fozylet
このコードは機能しませんでした。私はRobert Mooneyのソリューションを使用して終了しました:http://stackoverflow.com/questions/16216736/loading-app-config-into-the-appdomain#answer-33290175 –