Question

Je souhaite exporter les assemblys construits dans mon projet. Mais où sont-ils stockés physiquement?

Était-ce utile?

La solution

J'ai effectivement trouvé ce post, après avoir écrit ma question. C'est vraiment bien expliqué:

Vous pourrez les voir si vous accédez à

c: \ windows \ assembly

avec Explorer, où vous verrez une liste d'assemblages bien formatée.
L'extension shell responsable de cette vue affiche non seulement les assemblages du GAC, mais également les versions natives des assemblys précompilés avec ngen.exe.
Mais les fichiers ne sont pas réellement stockés ici - l'extension shell masque simplement leur emplacement réel. Vous pouvez voir où les fichiers sont réellement stockés en accédant au même répertoire via une invite de commande.
À cet emplacement se trouvent plusieurs sous-répertoires, dont un nommé GAC. Les ensembles physiques sont enterrés ici sous plusieurs couches de codes de hachage et de noms d'assembly, ainsi qu'un fichier .INI à l'ancienne qui contient entre autres le nom fort. Cela vaut la peine d'explorer ce territoire inexploré pour comprendre ce qui se passe sous la couverture, mais méfiez-vous des modifications, car le GAC se veut opaque.

Autres conseils

Ils sont stockés dans% systemroot% dans un dossier nommé assemblage

.

La variable% SystemRoot% est une variable d’environnement système spécifique à Microsoft Windows NT et ses dérivés. Sa valeur est l'emplacement du dossier système, y compris le lecteur et le chemin.

Le lecteur est identique à% SystemDrive% et le chemin par défaut d'une nouvelle installation dépend de la version du système d'exploitation. Par défaut, lors d’une nouvelle installation:

* Windows NT 5.1 (Windows XP) and newer versions use \WINDOWS
* Windows NT 5.0 (Windows 2000), Windows NT 4.0 and Windows NT 3.1 use \WINNT
* Windows NT 3.5x uses \WINNT35

(de wikipedia)

L'emplacement physique du GAC est le répertoire d'assemblage sous% WINDIR%, f.e.

c:\windows\assembly

Vous pouvez copier des assemblages sur le gac avec Explorer ou le programme gacutil.

Non, les assemblages physiques ne sont pas stockés dans "C: \ Windows \ assembly". seules les références aux assemblées y sont stockées. Par exemple, l'assembly & System; System.Windows.Forms.dll " (ainsi que la plupart des assemblys .NET Framework) est physiquement stocké dans " C: \ Windows \ winsxs " dans de nombreuses éditions, optimisées pour de nombreuses plateformes (Allez simplement dans "C: \ Windows \ winsxs" dans l'Explorateur et tapez "System.Windows.Forms.dll" dans le champ de recherche). Par exemple, vous pouvez créer un assemblage fortement nommé, l'enregistrer auprès du GAC, mais son emplacement physique est l'emplacement où vous placez le fichier d'assembly. (par exemple, " C: \ Users \% nom_utilisateur% \ Documents \ Visual Studio 2008 \ Projets \ Votre nomProjetAssembly \ Votre nom_projetAssembly \ bin \ Debug " - - Répertoire par défaut des projets VS). De plus, dans GAC, seules les références aux assemblys sont stockées. Ainsi, si vous reconstruisez votre assemblage enregistré dans GAC, les assemblys qui utilisent votre assemblage, en le référençant à partir de GAC, utiliseront également une version reconstruite de votre assemblage.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top