我无法将 App.Config 文件加载到应用程序域中。
我正在使用
[System.AppDomain]::CurrentDomain.SetData("APP_CONFIG_FILE", $config_path)
来自使用 App.config但 App.Config 文件仍未加载的 Powershell Calling .NET Assembly。
我也尝试过重置缓存,如Using CurrentDomain.SetData("APP_CONFIG_FILE") doesn't work in PowerShell ISE中所述。
这是我的测试脚本:
$configFile = "{ActualPhysicalPath}\App.Config"
gc $configFile
Add-Type -AssemblyName System.Configuration
[Configuration.ConfigurationManager].GetField("s_initState", "NonPublic, Static").SetValue($null, 0)
[Configuration.ConfigurationManager].GetField("s_configSystem", "NonPublic, Static").SetValue($null, $null)
([Configuration.ConfigurationManager].Assembly.GetTypes() | where {$_.FullName -eq "System.Configuration.ClientConfigPaths"})[0].GetField("s_current", "NonPublic, Static").SetValue($null, $null)
[Configuration.ConfigurationManager]::ConnectionStrings[0].Name
[System.AppDomain]::CurrentDomain.SetData("APP_CONFIG_FILE", $null)
[Configuration.ConfigurationManager]::ConnectionStrings[0].Name
[System.AppDomain]::CurrentDomain.SetData("APP_CONFIG_FILE", $configFile)
[Configuration.ConfigurationManager]::ConnectionStrings[0].Name
我总是得到存储在 machine.config 中的连接字符串,而不是那些在 App.config 中的。
如何在应用程序域中加载我的特定 App.Config 文件?