所以我有这个Powershell脚本在gac中安装MySql dll。
[System.Reflection.Assembly]::Load("System.EnterpriseServices,Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")
$publish = New-Object System.EnterpriseServices.Internal.Publish
$publish.GacInstall("C:Program Files (x86)MySQLMySQL Connector Net 6.9.9Assembliesv4.5MySql.Data.Entity.EF6.dll")
此脚本在 Windows Server 2012 R2 上工作正常,但在 Windows Server 2008 r2 上引发异常。
使用"1"参数调用"加载"的异常:"无法加载文件或 程序集"系统.企业服务,版本=4.0 .0.0, Culture=中性,PublicKeyToken=b03f5f7f11d50a3a' 或其之一 依赖。系统找不到已标记的文件。在 C:\Users\Administrator\Desktop\MyScript.ps1:2 char:35 + [System.Reflection.Assembly]::Load <<<<("System.EnterpriseServices, version=4.0.0.0, Culture=neutral, PublicKeyToken =b03f5f7f11d50a3a") + 类别信息:未指定:(:) [],方法调用异常 + 完全限定错误 ID : DotNetMethodException
1) Powershell以管理员身份运行
2) System.EnterpriseServices存在于 4.0.0 版本的系统中(位置:C:\Windows\Microsoft.NET\assembly\GAC_64\System.EnterpriseServices)
3) GacUtil 不是一个选项,因为 sdk 在生产环境中不可用。
我们如何在Windows Server 2008 r2上安装Gac有什么限制吗?
为什么在 Windows Server 2012 r2 中工作的脚本在 Windows Server 2008 r2 上不起作用?
我是否缺少服务器上的任何设置来使其正常工作?
我找到了答案:
Windows Server 2008 r2 上的 Powershell 使用 CLR verion 2.0,System.Enterpriseservice dll 使用 CLR 版本 4.0 创建。 Windows Server 2012 r2上的Powershell版本是4.0,这就是为什么这个脚本在Windows Server 2012 r2上运行良好。 可以使用以下命令检查版本: $psversiontable
因此,Powershell无法加载此dll。
现在如何解决此错误:将Powershell版本更改为使用CLR 4.0
如何:https://community.dynamics.com/ax/b/daxbeginners/archive/2013/12/08/this-assembly-is-built-by-a-runtime-newer-than-the-currently-loaded-runtime-and-cannot-be-loaded
要运行的脚本以更改 PS CLR 版本:
打开记事本并粘贴以下代码:
$config_text = @"
<?xml version="1.0"?>
<configuration>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0.30319"/>
<supportedRuntime version="v2.0.50727"/>
</startup>
</configuration>
"@
$config_text| Out-File $pshomepowershell.exe.config
$config_text| Out-File $pshomepowershell_ise.exe.config
保存它,然后将文件扩展名重命名为 .PS1。 以管理员身份运行。
偶然发现了这篇文章,它解释了有关错误以及如何更改Powershell版本的所有内容。
希望这对某人有所帮助:)
"请重新安装 .NET Framework(3.5 或更高版本),重新启动计算机,然后重试。 https://community.powerbi.com/t5/Desktop/Unnable-to-connect-to-SQL-Server-2012/m-p/177331 "安装了框架 4.5 并启动系统,现在可以工作了。">