C# - можете ли вы сделать "слабую" ссылку на сборку со строгой именованной сборкой

По разным причинам я бы предпочел не использовать строго именованные (подписанные) сборки в моем проекте. однако на один из проектов ссылается веб-часть sharepoint, что означает, что он должен быть подписан.

Можно ли подписать эту сборку, но когда я ссылаюсь на нее из других проектов, это делается с использованием ненадежной ссылки. это дало бы мне преимущества наличия не подписанной сборки для остальной части моего кода, но все же позволило бы ее загружать на sharepoint.

3 ответа

Простейший способ сделать это, вероятно, состоит в том, чтобы иметь две разные конфигурации проекта - одна из которых создает сборку со строгим именем, а другая - нет. Очевидно, что вам нужно быть осторожным при сборке и ссылках на сборку, но это связано с наличием противоречивых требований.

Просто продолжайте строить свой проект без сильных имен. Когда вам нужно развернуть его на Sharepoint, используйте инструмент, чтобы подписать его после его сборки. Вот инструмент, который делает именно это:

http://signer.codeplex.com/Wikipage

Вы также можете сделать это вручную, но это PITA:

http://buffered.io/posts/net-fu-signing-an-unsigned-assembly-without-delay-signing/

Это ОП, но у меня нет логина OpenID, поэтому я не могу ответить как сам.

Спасибо за оба ответа. Я думаю, что любой работал бы, но ситуация оказалась немного более сложной. Я задокументировал свои выводы здесь на случай, если кому-то еще будет интересно.

На самом деле ссылки на сборочные точки А и сборку А в свою очередь ссылаются на сборку В.

Я могу собрать сборки A и B без подписи без проблем, но затем, если я хочу подписать A, я должен изменить сам проект для ссылки на подписанную версию сборки B.

Хотя, возможно, был способ сделать это, мы решили, что возможные конфликты DLL и проблемы управления конфигурацией при наличии разных наборов DLL с одинаковым именем не стоили хлопот.

Поэтому мы решили подписать обе эти сборки во всех сборках, реорганизовав код в различные сборки, где это необходимо, чтобы убедиться, что только минимальный объем кода находится в подписанных, чтобы они с меньшей вероятностью изменились.

Тим

Другие вопросы по тегам