Сильные имена в основном используются для помещения Dlls в GAC. Таким образом, вы можете безопасно иметь несколько версий Dll с одним и тем же именем (!) На одном компьютере, что с обычными COM-Dll часто приводит к проблемам. Отказ от подписания Dlls удаляет возможность GAC. Из-за этого у вас не возникает никаких непосредственных проблем, но вы не используете полезную функцию, поэтому вы получаете предупреждение.

я хочу сделать сборку .NET пригодной для использования в качестве COM-сервера, я должен добавить набор атрибутов, а затем использоватьregasm зарегистрировать его как COM-сервер.

Если сборка не подписана со строгим именемregasm когда бегать с/codebase ключ показываетRA0000 предупреждение о том, что сборкаможет мешать другим сборкам на том же компьютере и я должен подписать его под строгим именем, но регистрация проходит успешно, и это даже отлично работает.

Сильные имена AFAIK предназначены для предотвращения так называемого ада DLL. Но COM должен был также предотвратить ад DLL. Если я изменяю любой интерфейс, доступный для COM, я должен либо изменить GUID, либо, по крайней мере, поддерживать двоичную совместимость. Таким образом, подписание со строгим именем, кажется, не добавляет ничего полезного - ничто не мешает мне сломать COM-интерфейсы, затем подписать с той же парой ключей и получить полноценный ад DLL.

Какая польза от подписи в качестве строгого имени в случае COM-сборок .NET?

Ответы на вопрос(3)

Ваш ответ на вопрос