从程序集中安装或卸载 DLL
install or uninstall DLLs from Assembly
我试图找到一种通过 C# 代码从 GAC 安装和卸载 dll 的方法,但我发现的唯一东西是 "Gacutil.exe",而且非常不清楚如何使用它。
有更好的方法从 GAC 安装\卸载文件。
谢谢
您可以使用 PowerShell,for example。
或者如您所说,使用 gacutill 但 Micsrosoft 说:
Gacutil.exe is only for development purposes and should not be used to install production assemblies into the global assembly cache.
我认为最好的方法是使用安装程序来完成这项工作。
GAC 中的库应仅在安装期间添加,仅在卸载期间删除。
Here 是如何设置安装程序的示例。我认为其他安装程序也应该这样做。
经过研究我发现了这个:(正如你想要的 C# 代码 ;-) )
要将程序集安装到 GAC 中:
new System.EnterpriseServices.Internal.Publish().GacInstall("MyAssembly.dll");
要从 GAC 卸载程序集:
new System.EnterpriseServices.Internal.Publish().GacRemove("MyAssembly.dll");
在项目文件中,您可以通过将以下内容放入 Post-Build 事件中,在构建后自动对程序集进行 GAC。
"C:\Program files\Microsoft Visual Studio 8\SDK\v2.0\Bin\GacUtil.exe"
-i "$(TargetPath)"
以同样的方式将卸载命令添加到预构建。
我试图找到一种通过 C# 代码从 GAC 安装和卸载 dll 的方法,但我发现的唯一东西是 "Gacutil.exe",而且非常不清楚如何使用它。
有更好的方法从 GAC 安装\卸载文件。 谢谢
您可以使用 PowerShell,for example。 或者如您所说,使用 gacutill 但 Micsrosoft 说:
Gacutil.exe is only for development purposes and should not be used to install production assemblies into the global assembly cache.
我认为最好的方法是使用安装程序来完成这项工作。 GAC 中的库应仅在安装期间添加,仅在卸载期间删除。
Here 是如何设置安装程序的示例。我认为其他安装程序也应该这样做。
经过研究我发现了这个:(正如你想要的 C# 代码 ;-) )
要将程序集安装到 GAC 中:
new System.EnterpriseServices.Internal.Publish().GacInstall("MyAssembly.dll");
要从 GAC 卸载程序集:
new System.EnterpriseServices.Internal.Publish().GacRemove("MyAssembly.dll");
在项目文件中,您可以通过将以下内容放入 Post-Build 事件中,在构建后自动对程序集进行 GAC。
"C:\Program files\Microsoft Visual Studio 8\SDK\v2.0\Bin\GacUtil.exe" -i "$(TargetPath)"
以同样的方式将卸载命令添加到预构建。