Отражение и строго названные сборки - PullRequest
1 голос
/ 03 декабря 2010
  1. Я создал тестовый проект, выход которого будет иметь строгое имя сборки. Я указал имя файла SNK в разделе «проект -> свойства -> Подписание», чтобы сборка имела строгое имя. Я добавил ссылку на сборку, которая НЕ подписана или строго названа. Я ожидал, что мой проект вообще не будет собран, так как он ссылается на неподписанную сборку. Тем не менее, он построен, и я мог бы также установить сборку в GAC! Почему это так? (Я использую .NEt 4.0, и это gacutil.exe) Примечание. Я убедился, что сборка, на которую ссылаются, НЕ имеет строгого имени.

  2. Могу ли я программно загрузить сборку «unsigned» (то есть не с сильным именем) в мою программу, чей вывод будет сборкой со строгим именем? Если да, почему это разрешено делать, если, с другой стороны, .NET не позволяет добавлять ссылки на неподписанные сборки?

  3. Если у меня есть несколько версий одной и той же сборки в GAC. В моем файле конфигурации, если я укажу только название сборки, какая версия будет загружена из GAC? Это будет последняя версия каждый раз? Какой API будет полезен? Я нашел много методов, помеченных как «устаревшие» в Assembly классе.

Ответы [ 2 ]

1 голос
/ 27 июня 2011

Вы можете ссылаться на неподписанную сборку в VS.Net из подписанной сборки. Но если вы вызываете что-либо от подписанного до неподписанного, сборка завершится неудачей.

0 голосов
/ 03 декабря 2010
  1. Нет проблем в подписанной сборке, ссылающейся на неподписанную сборку. Это можно сделать и подписать сборку можно GACed.

  2. Да, вы можете загрузить.

  3. Как вы можете указать сборку только по имени? Существует только один API LoadWithPartialName, и это устарело по многим причинам. Вам нужен токен версии, культура и открытый ключ для уникальной идентификации сборки.

...