Мне известны следующие два различных типа веб-проектов в Visual Studio 2008:
- Сайт проекта
- Проект веб-приложения
Проект веб-приложения может ссылаться на подписанную сборку, если сборка веб-приложения также подписана тем же ключом. Однако это не работает с проектом веб-сайта, потому что нет места для подписи сборки. Я думаю, это потому, что сборка динамически компилируется на сервере?
В любом случае, возможно ли заставить проект веб-сайта работать с этой подписанной сборкой? Или мне придется преобразовать этот проект веб-сайта в проект веб-приложения?
Изменить:
Следующая ситуация потребовала, чтобы я попросил разъяснений по этому вопросу:
У меня есть библиотека классов, на которую ссылаются несколько других проектов в моем решении в Visual Studio. Одним из проектов является Windows-приложение, которое будет развернуто для конкретных внешних пользователей. Чтобы убедиться, что приложение использует правильную сборку, а также чтобы другие не могли использовать сборку (я знаю об ограничениях в отношении ее эффективности), все сборки были подписаны и все классы в библиотеке объявлены как друг (внутренний).
Похоже, что у проекта веб-сайта нет способа подписать его сборку, и при попытке использовать что-либо из библиотеки я получаю следующее сообщение: «CLASS не может быть оценен в этом контексте, потому что это« Друг »» , чего и следовало ожидать.
Следующие атрибуты находятся внутри файла AssemblyInfo.vb в моем проекте библиотеки классов:
<Assembly: InternalsVisibleTo("OtherProject1, PublicKey=AAA...")>
<Assembly: InternalsVisibleTo("OtherProject2, PublicKey=AAA...")>
...
Мой вывод:
Похоже, что самый простой способ сделать это - преобразовать веб-сайт в веб-приложение, но для этого потребуется немного времени, поскольку наш сайт уже достаточно проработан и, как указывалось в других обсуждениях, может быть довольно боль делать. В дальнейшем, я думаю, что создание веб-приложения, во-первых, могло бы быть лучшей идеей и гораздо более гибким для дальнейшей разработки.