我无法将 App.Config 文件加载到应用程序域中。
我在用着
[System.AppDomain]::CurrentDomain.SetData("APP_CONFIG_FILE", $config_path)
from Powershell 调用使用 App.config 的 .NET 程序集 https://stackoverflow.com/questions/835862/powershell-calling-net-assembly-that-uses-app-config但App.Config文件仍未加载。
我也尝试过重置缓存,如中所述使用 CurrentDomain.SetData("APP_CONFIG_FILE") 在 PowerShell ISE 中不起作用 https://stackoverflow.com/questions/13420545/using-currentdomain-setdataapp-config-file-doesnt-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 文件?