我的.net程序正在使用程序集,该程序集应安装在GAC中。提前验证是否可以找到程序集
如果组件安装正确,它会在我第一次使用时立即加载,这很好。例如,如果我使用类似如下的程序集:
ESRI::ArcGIS::esriSystem::AoInitialize^ aoi = gcnew ESRI::ArcGIS::esriSystem::AoInitializeClass();
程序集将被加载。
现在有时候程序集不会出现在GAC中,我需要程序注意到这一点但不会崩溃。
我试过包装组件的使用到这样的try/catch块:
try
{
ESRI::ArcGIS::esriSystem::AoInitialize^ aoi = gcnew ESRI::ArcGIS::esriSystem::AoInitializeClass();
}
catch (System::Exception^)
{
// assembly not found
}
但程序不会抛出异常,但崩溃来代替。
如何预先检查装配是否在GAC中,并且可以在不碰撞的情况下使用?或者我怎样才能捕捉崩溃并禁用我的程序中相应的菜单项?
可能的重复:http://stackoverflow.com/questions/1933947/check-gac-for-an-assembly – 2011-05-30 13:46:30
在等待编辑:这不是C#,这是托管-C++!我会编辑它,但在拒绝按钮上单击得太快而不是编辑它... – Stormenet 2011-05-30 13:56:28