c# - PowerShell 能否在 GAC 中使用具有不同版本的本地程序集?

标签 c# .net powershell dll gac

我需要引用 System.Net.Http.dll PowerShell 脚本中的版本 2.2.29.0。 GAC 有 System.Net.Http版本 4.0.0.0。是否可以在不修改 GAC 的情况下重定向到我的本地 DLL?

我试过:

  1. 通过 Add-Type -Path 'System.Net.Http.dll' 添加 DLL .
  2. 创建带有 <assemblyBinding> 的 .config 文件元素,例如 .NET 应用程序用于绑定(bind)重定向的元素。
  3. 通过[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/

相关文章:

.net - 使用 .NET 通过 SSL 抓取屏幕

C# 后增量和前增量

powershell - powershell IF 与 Switch

powershell - 如果语句不起作用则嵌套

c# - 如何在 IIS 中托管 Windows 服务(如)

c# - 如何编写 Web Api 单元测试,我应该从 UserManager 获取信息

c# - 如何在 ListView 项目的 Windows 10 UWP 中添加上下文菜单?

c# - 以全屏模式运行的 UWP C# 应用程序在全屏观看视频后切换到窗口模式

c# - 将数据从 WinForm 传递到 WPF

powershell - 如何在 Powershell 中获取所有 Azure VM 的列表