2014-02-03 3 views
3

Я создал класс в проекте 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.

* редактирование: фиксированный заголовок

ответ

4

Через некоторое время мой сотрудник нашел наше решение. Я пытался добавить пространство имен, и нам нужно было добавить сборку. Это было сделано в корневом web.config, а не в представлениях web.config. Все мы должны были добавить был:

<compilation debug="false" targetFramework="4.0"> 
<assemblies> 
    <add assembly="namespace.AppAuthentication /> 
</assemblies> 
</compilation> 

Теперь я могу использовать мои расширения пользовательских WebViewPage!

0

Агрегаты, зарегистрированные в GAC будут загружены .Net выполнения во время выполнения приложения.

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

+0

«Вам нужно добавить ссылку на свой проект для успешной сборки» этим вы подразумеваете добавление .dll в справочную папку? Я сделал это. Я также попытался добавить ссылку пространства имен в конфигурации пространства имен страниц в web.config View. – cfisher