PowerShell可以在GAC中使用具有不同版本的本地程序集吗?

时间:2016-08-18 15:06:25

标签: c# .net powershell dll gac

我需要在PowerShell脚本中引用System.Net.Http.dll版本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应用程序用于绑定重定向的那样。
  3. 通过[Reflection.Assembly]::LoadFrom("$PSScriptRoot\System.Net.Http.dll")加载DLL。
  4. 在所有情况下,随后执行[AppDomain]::CurrentDomain.GetAssemblies()表示C:\Windows中的版本4.0.0.0仍然是唯一加载的副本。

1 个答案:

答案 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”)

希望这会有所帮助