从Assembly安装或卸载DLL

时间:2016-01-25 12:23:20

标签: c# installation uninstall gac

我试图找到一种通过C#代码从GAC安装和卸载dll的方法,但我唯一能找到的就是" Gacutil.exe"以及" 39;很不清楚如何使用它。

有一种更好的方法可以从GAC安装\卸载文件。 感谢

2 个答案:

答案 0 :(得分:0)

您可以使用PowerShell for example。 或者正如你所说使用gacutill,但Micsrosoft说:

  

Gacutil.exe仅用于开发目的,不应用于将生产程序集安装到全局程序集缓存中。

在我看来,最好的方法是使用安装程序来完成这项工作。 只应在安装期间添加进入GAC的库,并且仅在卸载期间将其删除。

Here是如何设置安装程序的示例。我认为其他安装人员也应该这样做。

经过研究我发现:(因为你想要c#代码;-))

将程序集安装到GAC中:

new System.EnterpriseServices.Internal.Publish().GacInstall("MyAssembly.dll");

从GAC卸载程序集:

new System.EnterpriseServices.Internal.Publish().GacRemove("MyAssembly.dll");

答案 1 :(得分:0)

在项目文件中,您可以在构建后自动GAC程序集,方法是将以下内容放入Post-Build事件中。

" C:\ Program files \ Microsoft Visual Studio 8 \ SDK \ v2.0 \ Bin \ GacUtil.exe"                             -i" $(TargetPath)"

以同样的方式将uninstall cmd添加到prebuild。