Lorsque vous créez un nouveau projet C# dans Visual Studio, le fichier AssemblyInfo.cs généré inclut un attribut spécifiant un GUID d'assembly. Le commentaire au-dessus de l'attribut indique qu'il est utilisé "si ce projet est exposé à COM".AssemblyInfo.cs: Est-il utile de spécifier un Guid lors de l'utilisation de ComVisible (false)?
Aucun de mes assemblys ne contient de types qui doivent être visibles par COM, j'ai donc marqué mon assembly avec [assembly: ComVisible(false)]
. Est-il utile de spécifier un GUID? Mon sentiment est que la réponse est "non" - alors pourquoi le fichier AssemblyInfo.cs par défaut contient-il [assembly: ComVisible(false)]
et [assembly: Guid("...")]
?
Edit:
Pour résumer les réponses:
Entre eux, les réponses expliquent que la spécification d'un GUID est nécessaire si et seulement si COM Interop est utilisé. Donc, dans ma situation, un GUID n'est pas nécessaire. Sharentooth explique en outre que [assembly: ComVisible(false)]
n'implique pas de ne pas utiliser COM interop, puisqu'il est possible de surcharger ComVisible
pour des types individuels. C'est pour cette raison que le fichier AssembyInfo.cs par défaut contient à la fois [assembly: ComVisible(false)]
et un GUID.
Il a une assez grande [utilisation] (http://stackoverflow.com/q/11403333/712526) pour un serveur Web autonome qui a besoin d'un certificat SSL – jpaugh
@jpaugh: Pas sûr que nous parlons de la même chose. – Josh
Je ne suis pas entièrement sûr, moi-même; mais, j'ai dû utiliser le GUID de l'information d'assemblage pour obtenir ce scénario de travail (voir le bas de ma réponse sur cette page.) Ma (provisoire) conclusion est que Windows utilise une interface COM pour faire une liaison SSL une application particulière. – jpaugh