有沒有人找出如何讓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運行.Net程序集的App.config
- 2. 使用powershell腳本替換app.config中的文本
- 3. 如何使用PowerShell更改app.config文件中的nlog值
- 4. app.config + stateProvider
- 5. 將app.config加載到AppDomain中
- 6. 共享庫App.Config
- 7. log4net沒有app.config
- 8. App.config和csc.exe
- 9. 隱藏app.config
- 10. Clickonce和app.config
- 11. 更新的app.config
- 12. 在App.config中
- 13. App.config返回null
- 14. 在app.config文件
- 15. C#App.Config文件
- 16. dataset.xsd與**否** app.config
- 17. app.config程序集
- 18. App.Config捆綁
- 19. 定製的app.config
- 20. .Net3.5中的app.config
- 21. Xunit的App.config
- 22. App.config和ConfigurationManager
- 23. app.config visual studio creation
- 24. Switch Statement vs App.Config
- 25. app.config全球化
- 26. WCF app.config代碼
- 27. C#App.Config位置
- 28. FitNesse的App.Config中
- 29. UnauthorizedAccessException app.config c#
- 30. App.Config轉義
哇......這些年來的答案:)。謝謝,我會給這個鏡頭。 – Kev 2011-04-11 18:26:30