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