使用PowerShell将程序集(dll)安装到全局程序集缓存(GAC)中 (无需SDK or Visual Studio)

发布于:
分类: Microsoft.Net Tagged

在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

 

留下评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注