相关疑难解决方法(0)

检查GAC以获取装配

如何以编程方式检查GAC的程序集?

.net gac

25
推荐指数
4
解决办法
2万
查看次数

如何以编程方式确定是否在GAC中安装了.NET程序集?

如果程序集在本地计算机上的GAC(全局程序集缓存)中注册,那么以编程方式检查的最简单方法是什么?是否有一些易于使用的.NET API,我可以给它一个程序集DLL或Assembly对象本身的位置,以检查它是否存在于本地机器上的GAC中?在我的情况下,我正在检查的程序集已经被加载到程序检查的当前AppDomain中,因此我不确定调用Assembly.ReflectionOnlyLoad和捕获异常将像我在其他帖子中看到的那样工作,加上这似乎有点hacky .

理想情况下,我想避免调用外部可执行文件gacutil.exe来检查.

.net c# global-assembly-cache .net-assembly

11
推荐指数
1
解决办法
1万
查看次数

每个构建的GAC安装 - 如何可靠地进行

我想在使用Visual Studio编译应用程序时可靠地在GAC中自动安装我的应用程序集.我在我的Web应用程序的构建中设置了构建前和构建后事件.

预建活动:

"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\gacutil.exe" /f /ul Uninstall.Gac.txt
Run Code Online (Sandbox Code Playgroud)

发布后事件:

"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\gacutil.exe" /f /il Install.Gac.txt
%windir%\system32\inetsrv\appcmd.exe recycle apppool -apppool.name:"Sharepoint IIS WebApps"
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我还在回收我的Web应用程序池,以便新程序集开始工作.

我遇到的问题是这是一个非常不可靠的过程.如果我的Web应用程序失败,我的下一个版本将失败,因为卸载将失败(后期构建未在以前的版本上运行)...等等.

我想尽可能让这个过程变得可靠.我想条件卸载和组装,如果它们存在并强行安装,无论它们是否存在......但是预构建事件对于下一个原因仍然很重要:

重要

在构建之前完全卸载所有程序集是很重要的,否则它们不会被复制到我的输出目录(因为编译器在GAC中找到它们),因此GAC安装失败,因为它无法在output\bin文件夹中找到程序集.

我应该如何在我的Web应用程序构建中可靠地执行GAC卸载和安装?

gacutil visual-studio-2010 global-assembly-cache build-events

5
推荐指数
1
解决办法
6396
查看次数