有沒有人找出如何讓PowerShell使用app.config
文件?我有幾個.NET DLL,我想用在我的一個腳本中,但他們希望他們自己的配置部分出現在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目錄下的powershell.exe.config中,但這似乎是一種不好的做事方式。
您可以使用ConfigurationManager.OpenMappedExeConfiguration基於執行的DLL名稱而不是應用程序exe來打開配置文件,但這顯然需要更改DLL。
試圖對舊問題作出新的回答。
我認爲現代的答案是:不這樣做。 PowerShell是一個shell。在shell的各個部分之間傳遞信息的正常方式是shell變量。對於看起來像這樣的PowerShell:
$global:MyComponent_MySetting = '12'
# i.e.
$PSDefaultParameterValues
$ErrorActionPreference
如果設置預計跨進程邊界繼承,則約定將使用環境變量。我將其擴展到跨越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)在這方面接受PS在.NET方面的外殼方面要好得多。
如果您需要複雜的配置,請使用JSON字符串。 POSH v3 +內置了ConvertFrom-JSON。如果進程中的所有內容都使用相同的複雜配置,則將其放在.json文件中,並從環境變量指向該文件。
如果單個文件不足夠有喜歡PATH
模式完善的解決方案,GIT的.gitignore分辨率,或ASP.NET的web.config分辨率(我這裏就不重複了)。
- 1. 如何使用PowerShell更改app.config文件中的nlog值
- 2. 將app.config加載到AppDomain中
- 3. app.config + stateProvider
- 4. App.Config或XAML
- 5. 隱藏app.config
- 6. 共享庫App.Config
- 7. app.config被忽略?
- 8. UnauthorizedAccessException app.config c#
- 9. app.config程序集
- 10. 定製的app.config
- 11. app.config轉換
- 12. .NET app.config文件
- 13. app.config全球化
- 14. 在App.config中
- 15. C#App.Config位置
- 16. App.config和csc.exe
- 17. .Net3.5中的app.config
- 18. FitNesse的App.Config中
- 19. C#App.Config文件
- 20. Settings.settings vs app.config?
- 21. Clickonce和app.config
- 22. App.Config不工作
- 23. App.Config與AppName.exe.Config
- 24. WPF的app.config寫
- 25. 主的app.config
- 26. App.config和web.config?
- 27. App.config返回null
- 28. App.config和ConfigurationManager
- 29. App.config在哪裏?
- 30. WPF App.config System.TypeInitializationException
哇......這些年來的答案:)。謝謝,我會給這個鏡頭。 – Kev 2011-04-11 18:26:30