c # - можете ли вы сделать «слабую» ссылку на сборку со строгой именованной сборкой - PullRequest
6 голосов
/ 22 марта 2010

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

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

Ответы [ 3 ]

3 голосов
/ 22 марта 2010

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

1 голос
/ 08 апреля 2010

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

http://signer.codeplex.com/Wikipage

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

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

0 голосов
/ 08 апреля 2010

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

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

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

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

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

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

Tim

...