类型的间接加载在PowerShell中失败

类型的间接加载在PowerShell中失败,powershell,Powershell,调用时 [System.Configuration.ConfigurationManager]::GetSection("MySection") 在PowerShell提示符中,它会引发异常,因为无法加载包含应用程序配置中“MySection”表示的类型的程序集。但是,我以前加载过包含该类型的程序集,甚至可以直接使用“new object”实例化该类型 ConfigurationManager如何解析类型,使已加载到PowerShell应用程序域中的程序集对其不可见?您是如何加载该程序集的?绑

调用时

[System.Configuration.ConfigurationManager]::GetSection("MySection")
在PowerShell提示符中,它会引发异常,因为无法加载包含应用程序配置中“MySection”表示的类型的程序集。但是,我以前加载过包含该类型的程序集,甚至可以直接使用“new object”实例化该类型


ConfigurationManager如何解析类型,使已加载到PowerShell应用程序域中的程序集对其不可见?

您是如何加载该程序集的?绑定上下文很重要:


-Oisin

尝试将app_config_文件位置更改为您自己的app config文件的路径,该路径指定包含DLL的目录的私有探测路径。看这个。这适用于连接字符串数据,但我不确定它是否适用于应用程序基本目录之外的私有探测路径。

我上周遇到了这个问题。希望你能得到一个答案,因为我一直没有弄明白。我想我在这里发现了问题:似乎在'type'元素中定义的程序集必须与配置文件位于同一目录中。上面写着“web.config”,但我认为可以将其扩展到应用程序配置。供较早响应的人参考…我没有尝试创建静态ConfigurationManager实例。我正在尝试创建的类型是应用程序配置文件中定义的类型…被“MySection”引用的类型。它是使用Assembly.LoadFrom加载的。至于程序集是如何通过GetSection间接加载的,我不知道。但是我认为MS文档清楚地表明,程序集位置在应用程序配置文件中很重要。是的,GetSection将探测托管进程的私有路径中的程序集,即powershell.exe。创建一个appdomain,然后从中封送字符串数据可能更容易。即使在powershell脚本中,这也不难编写。