66 votes

Gacutil.exe ajoute avec succès l'assemblage, mais l'assemblage n'est pas visible dans l'explorateur. Pourquoi ?

J'exécute GacUtil.exe à partir de Visual Studio Command Prompt 2010 pour enregistrer une dll (CatalogPromotion.dll) dans le GAC. Après l'exécution de l'utilitaire, il est indiqué Assembly Successfully added to the cache et en cours d'exécution gacutil /l CatalogPromotionDll montre que le GAC contient l'assemblage, mais je ne peux pas voir l'assemblage quand je navigue vers C:\WINDOWS\assembly à partir de l'Explorateur Windows. Pourquoi ne puis-je pas voir l'assemblage dans Windows ? \assembly à partir de l'explorateur Windows mais je peux le voir en utilisant gacutil.exe ?


Le contexte : Voici ce que j'ai tapé dans l'invite de commande de VS Tools :

    C:\\\_Dev Projects\\VS Projects\\bmccormack\\CatalogPromotion\\CatalogPromotionDll\\bin
    \\Debug>**gacutil /i CatalogPromotionDll.dll**
    Microsoft (R) .NET Global Assembly Cache Utility.  Version 4.0.30319.1
    Copyright (c) Microsoft Corporation.  All rights reserved.

    **Assembly successfully added to the cache**

    C:\\\_Dev Projects\\VS Projects\\bmccormack\\CatalogPromotion\\CatalogPromotionDll\\bin
    \\Debug>**gacutil /l CatalogPromotionDll**
    Microsoft (R) .NET Global Assembly Cache Utility.  Version 4.0.30319.1
    Copyright (c) Microsoft Corporation.  All rights reserved.

    The Global Assembly Cache contains the following assemblies:
      CatalogPromotionDll, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9188a175
    f199de4a, processorArchitecture=MSIL

    **Number of items = 1**

Cependant, l'assemblage n'apparaît pas dans C:\WINDOWS\assembly.

109voto

Hans Passant Points 475940

C'est parce que vous utilisez la version .NET 4.0 de gacutil.exe. Il stocke l'assemblage dans un fichier différents GAC, celui en c : \windows\microsoft.net\assembly. Où sont stockés tous les assemblages .NET 4.0. Il n'y a pas de gestionnaire d'extension du shell pour celui-ci, les dossiers sont visibles tels quels. Vous pouvez jeter un coup d'oeil avec l'explorateur Windows, .vous verrez la structure interne des dossiers du GAC. Vous ne devriez pas avoir de problème pour retrouver votre assemblage, le GAC n'est pas particulièrement compliqué.

Si l'assemblage est destiné à être utilisé par une application qui cible une version antérieure de .NET, vous devez utiliser la version .NET 2.0 de gacutil.exe, stockée dans le répertoire C:\Program Fichiers \Microsoft SDKs \Windows\v6.0A\bin

2voto

gravidThoughts Points 117

Cela est dû au fait que l'assemblage que vous installez dans le GAC a été compilé en ciblant le runtime 4.0. Les assemblages du GAC 4.0 sont stockés dans un emplacement différent : \windows\microsoft.net\assembly.

La réponse acceptée est incorrecte. L'utilisation du gacutil .NET 4.0 pour installer un assemblage compilé en ciblant le runtime 3.5 ou antérieur fonctionne très bien, et placera l'assemblage dans le répertoire attendu par le PO, c : \windows\assembly.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X