Когда вы создаете новый проект C # в Visual Studio, сгенерированный файл AssemblyInfo.cs содержит атрибут, указывающий GUID сборки. В комментарии над атрибутом указано, что он используется «если этот проект открыт для COM».
Ни одна из моих сборок не содержит типов, которые должны быть видимы для COM, поэтому я пометил свою сборку [assembly: ComVisible(false)]
. Так есть ли смысл указывать GUID?
Мне кажется, что ответ "нет" - так почему файл AssemblyInfo.cs по умолчанию содержит как [assembly: ComVisible(false)]
, так и [assembly: Guid("...")]
?
Edit:
Подведем итоги ответов:
Между ними ответы объясняют, что указание GUID требуется тогда и только тогда, когда используется COM-взаимодействие. Так что в моей ситуации GUID не нужен.
sharptooth дополнительно объясняет, что [assembly: ComVisible(false)]
не подразумевает не использование COM-взаимодействия, так как возможно переопределить ComVisible
для отдельных типов. По этой причине файл AssembyInfo.cs по умолчанию содержит как [assembly: ComVisible(false)]
, так и GUID.