2016-11-03 2 views
1

Я включил LiveDll для моих Umbraco.ModelsBuilder.ModelsMode в web.config, чтобы получить строго типизированные модели. Как вы можете или не знаете, это создает DLL на диске с именем Umbraco.Web.PublishedContentModels в папке bin веб-сайта Umbraco.Ссылка Umbraco LiveDll от проекта отдельного контроллера

Моя проблема в том, что я не понимаю, как получить «чистую» ссылку из моего (отдельного) проекта контроллеров. (Мне особенно не нравится перспектива ссылки на образцы dll «как есть» на веб-сайте bin.)

Кто-нибудь знает, как это должно быть настроено?

+0

Установите его как AppData и отрисуйте модели. После этого скопируйте их в отдельный проект, а затем обратитесь к проекту контроллера. – Mivaweb

ответ

0

Если вы ссылаетесь на Umbraco.Web.PublishedContentModels.dll из вашего проекта контроллеров, тогда вы вызовете круговую ссылку, чтобы она не работала.

, как мы имеем его работать, установив ModelsBuilder в Dll

<add key="Umbraco.ModelsBuilder.ModelsMode" value="Dll" /> 

Мы затем установите папку Library и скопировали DLL к этой папке. Другой проект затем ссылается на dll в Библиотеке, поэтому мы не получаем круговую ссылку.

Таким образом, наша структура проекта является чем-то вроде

MySolution 
    UmbracoWebProject 
    ControllersProject 
    Library 

Мы не хотим, чтобы скопировать DLL в библиотеку каждый раз, когда мы запускаем modelsbuilder поэтому мы создали событие Pre-Build, чтобы скопировать DLL для нас на каждой сборке.

Чтобы создать событие Pre-Build, щелкните правой кнопкой мыши проект Umbraco в Visual Studio и выберите «Свойства». Выберите «Build Events» и добавьте следующее в Pre-Build, предполагая, что ваша структура проекта аналогична предыдущей.

IF EXIST "$(ProjectDir)bin\Umbraco.Web.PublishedContentModels.dll" xcopy "$(ProjectDir)bin\Umbraco.Web.PublishedContentModels.dll" "$(SolutionDir)Library" /y 

Использование Dll режима, вам придется явно запускать модели строитель из Umbraco всякий раз, когда вы меняете DOCTYPEs

Это хорошо работает для нас, но это не кажется, что это та область, которая все еще нуждается в подумайте немного о Umbraco и сообществе. Было бы неплохо иметь решение «установить и забыть».

+0

Спасибо, что ответили! Возможно, я не думаю, что прямо, но я не вижу, чтобы циркулярная ссылка происходила - 'PublisherContentModels.dll' не знал бы о моей библиотеке контроллеров, не так ли? Во всяком случае, то, что вы предлагаете, близко к тому, что я себе представлял. Жаль, что «предварительная сборка» кажется единственным доступным вариантом. –

+0

Я думаю, что круговой рефлик может наступить, когда вы начнете пытаться использовать ваши сгенерированные Umbraco модели в своих контроллерах ... это почти наверняка укусит вас в какой-то момент :) – wingyip

Смежные вопросы