And*_*rey 4 powershell exception powershell-2.0 .net-3.5
我发现了一个很容易重现的问题.请告知是否有任何解决方法?
有两个.Net库libraryA.dll和libraryB.dll.每个库都有一个接口InterfaceA和InterfaceB.ClassAA实现了InterfaceA并且存在于libraryA中.ClassAB实现了InterfaceB并且位于同一个库A中.同样的方式ClassBB - LibraryB - InterfaceB; ClassBA - LibraryB - InterfaceA
当实例化ClassAA和ClassBB而不是ClassAB或ClassBA时,New-Object可以正常工作.他们经常无法实例化.
这里是PowerShell代码
[System.Reflection.Assembly]::LoadFile(‘c:\LibraryA.dll’)
[System.Reflection.Assembly]::LoadFile(‘c:\LibraryB.dll’)
$obj1 = new-object -typeName ClassAA (IT WORKS)
$obj2 = new-object -typeName ClassBB (IT WORKS)
$obj3 = new-object -typeName ClassAB (EXCEPTION THROWN)
$obj4 = new-object -typeName ClassBA (EXCEPTION THROWN)
Run Code Online (Sandbox Code Playgroud)
非常感谢,
安德烈
而不是::LoadFile,使用:
[System.Reflection.Assembly]::LoadFrom(‘c:\LibraryA.dll’)
[System.Reflection.Assembly]::LoadFrom(‘c:\LibraryB.dll’)
Run Code Online (Sandbox Code Playgroud)
当您使用:: LoadFrom时,程序集将加载到其加载目录的上下文中,同一目录中的引用程序集将自动解析.:: LoadFile用于加载共享标识但位于不同目录中的程序集,并且不保留任何加载上下文,因此不会解析引用的程序集.
| 归档时间: |
|
| 查看次数: |
5596 次 |
| 最近记录: |