Cuando crea un nuevo proyecto de C# en Visual Studio, el archivo AssemblyInfo.cs generado incluye un atributo que especifica un GUID de ensamblaje. El comentario sobre el atributo indica que se usa "si este proyecto está expuesto a COM".AssemblyInfo.cs: ¿Hay algún punto al especificar un Guid cuando se usa ComVisible (falso)?
Ninguno de mis ensamblajes contiene tipos que deben ser visibles para COM, por lo que he marcado mi ensamblaje con [assembly: ComVisible(false)]
. ¿Hay algún punto para especificar un GUID?
Mi impresión es que la respuesta es "no", entonces ¿por qué el archivo AssemblyInfo.cs predeterminado contiene tanto [assembly: ComVisible(false)]
como [assembly: Guid("...")]
?
Editar:
Para resumir las respuestas:
Entre ellos, las respuestas explican que es necesario especificar un GUID si y sólo si se utiliza interoperabilidad COM. Entonces, en mi situación, un GUID no es necesario.
sharptooth explica además que [assembly: ComVisible(false)]
no implica que no se use COM interoperabilidad, ya que es posible anular ComVisible
para tipos individuales. Es por esta razón que AssembyInfo.cs por defecto contiene [assembly: ComVisible(false)]
y un GUID.
Tiene un [uso] bastante grande (http://stackoverflow.com/q/11403333/712526) para un servidor web independiente que necesita un certificado SSL – jpaugh
@jpaugh: No estoy seguro de que estamos hablando de la la misma cosa. – Josh
No estoy del todo seguro, yo mismo; pero, tuve que usar el GUID de la información del ensamblado para que funcione ese escenario (vea la parte inferior de mi respuesta en esa página). Mi conclusión (provisional) es que Windows usa una interfaz COM para hacer que un enlace SSL se "adhiera" a una aplicación particular. – jpaugh