Я создал класс в проекте 1, который расширяет WebViewPage, чтобы я мог добавить свой собственный метод расширения. Я следил за этой страницей: right here.Razor View Not Seeing External Assembly
У меня есть второй проект, который содержит класс и объект. Этот DLL проекта ссылается в проекте 1 и зарегистрирован в gacutil.
Метод расширения использует объект, который находится в проекте 2. Всякий раз, когда я использую свой недавно внедренный метод расширения на странице, я получаю замечательную ошибку CCS0012.
CS0012: Тип «namespace.AppAuthentication.type» определяется в сборке, которая не ссылается. Вы должны добавить ссылку на сборки «» namespace.AppAuthentication
я смог отладить до конца и увидеть, что объект был правильно настроить. Даже когда я разбираю его в JSON и показываю его на консоли в jquery ... все есть! Только при доступе к объекту в представлении.
Проект 2 указан в проекте 1. Проект .dll проекта 2. зарегистрирован в моем gacutil. Единственный способ, которым это работает, - установить, что «скопировать местное» значение истинно в ссылке. Кроме того, это не приемлемый вариант для меня. Я пробовал все под солнцем, и все, что перечислялось на этом посту: right here.
Я был бы очень признателен, если бы кто-нибудь мог пролить свет на этот вопрос. Мне кажется, что Razor не может получить доступ к ассамблеям, зарегистрированным в GAC.
* редактирование: фиксированный заголовок
«Вам нужно добавить ссылку на свой проект для успешной сборки» этим вы подразумеваете добавление .dll в справочную папку? Я сделал это. Я также попытался добавить ссылку пространства имен в конфигурации пространства имен страниц в web.config View. – cfisher