在 Visual Studio 中创建新的 C# 项目时,生成的 AssemblyInfo.cs 文件包含一个指定程序集 GUID 的属性。该属性上方的注释指出,它是在“如果此项目暴露给 COM”的情况下使用的。
我的程序集都不包含需要对 COM 可见的类型,所以我用[assembly: ComVisible(false)]
. 那么指定 GUID 有什么意义吗?
我的感觉是答案是否定的——那么为什么默认的 AssemblyInfo.cs 文件同时包含[assembly: ComVisible(false)]
和[assembly: Guid("...")]
?
编辑:
总结一下回复:
在它们之间,答案解释了当且仅当使用 COM 互操作时才需要指定 GUID。因此,在我的情况下,不需要 GUID。
sharptooth 进一步解释说,[assembly: ComVisible(false)]
这并不意味着不使用 COM 互操作,因为可以覆盖ComVisible
单个类型。正是由于这个原因,默认的 AssembyInfo.cs 包含[assembly: ComVisible(false)]
GUID 和 GUID。