Guid dans les Dll (.Net)
Je ne suis pas très expérimenté dans ce domaine, donc j'ai quelques questions. Tout d'abord, tout faire .Net créé Dll ont leur propre GUID? Si non, ma question est comment puis-je obtenir de l'un et de l'associer avec la DLL.
Alors la question est, comment puis-je obtenir le GUID de cette dll - ie. compte tenu d'une DLL (chemin c:\some\path\to\a\file.dll) comment puis-je déterminer son GUID? Aussi, est-il un moyen facile d'aller dans l'autre sens (GUID -> DLL) - j'ai lu un peu à ce sujet, mais beaucoup de il se réfère à VB6 Dll de COM et d'autres choses...cela est-il encore s'appliquer .Net Dll?
Mise à jour: Merci pour les réponses. Je vais peut-être poser la mauvaise question. Je veux avoir un ID unique pour chacun de mes fichiers DLL, afin que je puisse les référencer dans une base de données. Je veux être en mesure de prendre l'IDENTIFIANT unique stocké dans la base de données, puis de trouver facilement la DLL et faire des trucs avec elle. À partir de ce que les réponses ont dit que peut-être je ne devrais pas être à l'aide d'un GUID, est-il .Net moyen de faire cela, alors?
OriginalL'auteur robintw | 2009-01-28
Vous devez vous connecter pour publier un commentaire.
Pour répondre à la deuxième question (Guid -> assemblée) c'est simple, si la dll est déjà chargé et vous voulez juste trouver celle qui avait un guid (le cas échéant), vous pouvez simplement faire
Si vous voulez le faire sans étant chargé, il est nécessaire de le charger dans un temporaire le domaine de l'application, cochez la case, puis déposez le domaine de l'application ou de l'utilisation non managé api d'introspection à faire la même chose mais sans avoir besoin de libérer quoi que ce soit après.
OriginalL'auteur ShuggyCoUk
Je pense que vous avez peut-être de se confondre entre les assemblées et les composants COM. COM utilise les Guid pour identifier les composants et les interfaces de la forme de l'Id de classe (CLSID) et l'Id d'interface (IID). Les informations sont stockées dans la base de registre et est utilisé pour créer un objet COM instances. .Net ne pas utiliser ce mécanisme pour identifier les assemblées et les classes. L'analogue de l'enregistrement de la situation est l'endroit où les assemblages sont fort nommé et stockées dans la GAC. Il ya plusieurs endroits que les Guid sont utilisé .Net - y compris COM interop - mais l'assemblée identification n'est pas l'un d'eux.
OriginalL'auteur Stu Mackellar
L' [assembly: Guid("...")] attribut est généralement définie dans votre AssemblyInfo.cs fichier. Par défaut, lorsque vous créez un nouveau projet Visual Studio fournit automatiquement un Guid pour vous, mais ce n'est vraiment utile que si vous allez exposer votre assemblée pour COM. L' .NET Framework lui-même ne pas utiliser cette valeur pour déterminer comment faire pour charger un assemblage ou de toute façon d'interagir avec elle.
OriginalL'auteur Scott Dorman
Comme un utilisateur de Visual Studio, regarder le AssemblyInfo.cs où les assemblées GUID est défini
[assembly: Guid("abc...")]
OriginalL'auteur Sebastian
Je pense que la question que nous devons nous poser est: pourquoi pensez-vous que vous avez besoin d'un GUID de votre assemblée? Vous n'avez pas de charge par le GUID ou registre CLSID sauf si c'est COM-utilisable.
OriginalL'auteur ctacke