在Windows Server 2012之前,在Windows全局程序集缓存(GAC)中安装DLL文件,我一直使用的方法是打开资源管理器中的Windows/Assembly文件夹并简单地拖放文件,或使用GacUtil.exe
不幸的是,使用Windows Server 2012并不那么容易能够在资源管理器中简单地打开GAC并拖放即可。 而且默认情况下服务器上没有GacUtil.exe。
还好有PowerShell来拯救你。 以下是如何将名为“MyDLL.dll”的DLL注册到GAC(以及如何删除它。)
对于这个例子,假设我们有存储在c:\temp\MyDLL.dll中的“MyDLL.dll”文件,将它添加到GAC
1.以管理员身份运行PowerShell
2.输入以下PowerShell命令
Set-location "c:\temp" [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:\temp\MyDLL.dll") iisreset
从GAC中删除DLL
1.以管理员身份运行PowerShell
2.输入以下PowerShell命令
Set-location "c:\temp" [System.Reflection.Assembly]::Load("System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a") $publish = New-Object System.EnterpriseServices.Internal.Publish $publish.GacRemove("c:\temp\MyDLL.dll") iisreset
查看DLL的信息
([system.reflection.assembly]::loadfile("c:\temp\MyDLL.dll")).FullName