【问题标题】:install or uninstall DLLs from Assembly从 Assembly 安装或卸载 DLL
【发布时间】:2016-05-01 18:13:23
【问题描述】:

我试图找到一种通过 C# 代码从 GAC 安装和卸载 dll 的方法,但我发现的唯一内容是“Gacutil.exe”,而且还不清楚如何使用它。

从 GAC 安装\卸载文件有更好的方法。 谢谢

【问题讨论】:

  • 你想做什么,一个安装项目?
  • 将我在 .net 项目中创建的一些 DLL 安装到 GAC。
  • 为什么要安装在GAC中,回答前请阅读stackoverflow.com/questions/2451123/…stackoverflow.com/questions/498361/…
  • 我为 sharePoint 编程 - 直到现在我都是手动完成的,我知道我需要它。只是问怎么做。
  • 所以你想制作一个实用程序来执行像 gacutil 这样的命令,那么一个简单的批处理文件呢?

标签: c# installation uninstallation gac


【解决方案1】:

您可以使用 PowerShell,for example。 或者正如你所说的使用 gacutil 但微软说:

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

在我看来,最好的方法是使用安装程序来完成这项工作。 只能在安装过​​程中将库添加到 GAC 中,并且只能在卸载过程中删除。

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

经过研究,我发现了这一点:(如你所愿 c# 代码 ;-))

要将程序集安装到 GAC 中:

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

从 GAC 卸载程序集:

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

【讨论】:

  • 我问的是“通过 C# 代码”。感谢您的回答,但请不要t write answers about things that i didns 询问。
【解决方案2】:

在项目文件中,您可以在构建后通过将以下内容放入构建后事件中自动 GAC 程序集。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-08-07
    • 1970-01-01
    • 2012-11-03
    • 2014-02-23
    • 1970-01-01
    • 2014-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多