J'ai créé un projet de test pour comprendre la réflexion. Je charge un assembly à partir de .NET 4.0 GAC. (Si je comprends bien, .NET 4.0 maintient qu'il est GAC dans C: \ WINDOWS \ Microsoft.NET \ assembly)Assembly.GlobalAssemblyCache renvoyant FALSE bien que l'assembly soit chargé à partir de GAC
J'ai écrit le code comme ceci:
Assembly testAssembly = Assembly.ReflectionOnlyLoadFrom(@"C:\WINDOWS\Microsoft.NET\assembly\GAC_32\TestReflection\v4.0_1.0.0.0__7ff2353191526e8c\TestReflection.dll");
if(testAssembly.GlobalAssemblyCache)
Console.WriteLine(testAssembly.FullName);
Quand je lance ce code, GlobalAssemblyCache
propriété toujours return FALSE bien que je charge l'assembly à partir de GAC.
Quelqu'un peut-il me dire la raison? Ou est-ce que je manque quelque chose?
Cela semble vraiment utile. Mais quand je lance gacutil/l TestReflection.dll, il est dit 0 assemblages trouvés. Mais quand je vais dans le dossier GAC de .NET 4.0, je peux voir des assemblages là. Une idée de ce qui pourrait être le problème? – Learner
@Amey: Installez-vous votre assembly dans le GAC en utilisant l'option 'gacutil/i'? –
Oui, j'utilise la même option pour installer l'assembly dans GAC en utilisant gacutil. – Learner