我需要引用 System.Net.Http.dll
PowerShell 脚本中的版本 2.2.29.0。 GAC 有 System.Net.Http
版本 4.0.0.0。是否可以在不修改 GAC 的情况下重定向到我的本地 DLL?
我试过:
- 通过
Add-Type -Path 'System.Net.Http.dll'
添加 DLL . - 创建带有
<assemblyBinding>
的 .config 文件元素,例如 .NET 应用程序用于绑定(bind)重定向的元素。 - 通过
[Reflection.Assembly]::LoadFrom("$PSScriptRoot\System.Net.Http.dll")
加载DLL .
在所有情况下,随后执行 [AppDomain]::CurrentDomain.GetAssemblies()
在 C:\Windows
中显示版本 4.0.0.0仍然是唯一加载的副本。
最佳答案
您是否尝试过使用程序集的全名?包括版本号?
Add-Type -AssemblyName "Microsoft.SqlServer.SMO, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"
或者:
[reflection.assembly]::Load(“Microsoft.SqlServer.SMO, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91”)
希望对你有帮助
关于c# - PowerShell 能否在 GAC 中使用具有不同版本的本地程序集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39021657/