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