Mon programme .net utilise un assemblage, qui devrait être installé dans le GAC.
Si l'assemblage est correctement installé, il sera chargé dès la première utilisation, ce qui est formidable. Si, par exemple, j'utilise un type de l'assemblage comme ceci :
ESRI::ArcGIS::esriSystem::AoInitialize^ aoi = gcnew ESRI::ArcGIS::esriSystem::AoInitializeClass();
L'assemblage sera chargé.
Il arrive parfois que l'assemblage ne soit pas présent dans le GAC, et j'ai besoin que le programme en soit conscient mais ne se plante pas.
J'ai essayé d'envelopper l'utilisation de l'assemblage dans un bloc try/catch comme ceci :
try
{
ESRI::ArcGIS::esriSystem::AoInitialize^ aoi = gcnew ESRI::ArcGIS::esriSystem::AoInitializeClass();
}
catch (System::Exception^ )
{
// assembly not found
}
Mais le programme ne lèvera pas d'exception et se plantera à la place.
Comment puis-je vérifier à l'avance si l'assemblage est dans le GAC et peut être utilisé sans planter ? Ou comment puis-je détecter le crash et désactiver les éléments de menu correspondants dans mon programme ?