Wenn Sie die Umbraco.Web.PublishedContentModels.dll von Ihrem Controller-Projekt referenzieren, dann verursachen Sie einen Zirkelverweis, so dass es nicht funktioniert.
Die Art, wie wir sie haben Arbeit ist durch die ModelsBuilder
<add key="Umbraco.ModelsBuilder.ModelsMode" value="Dll" />
Wir haben dann einen Library
Ordner DLL Einstellung und kopiert die DLL in diesem Ordner festgelegt. Das andere Projekt verweist dann auf die DLL in der Bibliothek, sodass wir keinen Zirkelverweis erhalten.
So ist unsere Projektstruktur ist so etwas wie
MySolution
UmbracoWebProject
ControllersProject
Library
Wir wollen nicht die DLL in die Bibliothek kopieren jedes Mal, wenn wir die modelsbuilder laufen, so haben wir eine Pre-Build-Ereignis die DLL für uns zu kopieren auf jedem Build.
Um das Pre-Build-Ereignis zu erstellen, klicken Sie mit der rechten Maustaste auf das Umbraco-Projekt in Visual Studio und wählen Sie Eigenschaften. Wählen Sie Build Events und fügen Sie dem Pre-Build folgendes hinzu, vorausgesetzt, Ihre Projektstruktur ist wie oben.
IF EXIST "$(ProjectDir)bin\Umbraco.Web.PublishedContentModels.dll" xcopy "$(ProjectDir)bin\Umbraco.Web.PublishedContentModels.dll" "$(SolutionDir)Library" /y
Dll-Modus verwenden, müssen Sie explizit die Modelle Builder von Umbraco ausgeführt, wenn Sie Ihre DocTypes ändern
Dies funktioniert gut für uns, aber es fühlt sich, als ob es ein Bereich ist, der muss noch etwas mehr von Umbraco und der Gemeinde gedacht werden. Es wäre schön, eine "Install and Forget" -Lösung dafür zu haben.
Legen Sie es als AppData fest und rendern Sie die Modelle. Kopieren Sie diese anschließend in ein separates Projekt und verweisen Sie diese dann auf Ihr Controller-Projekt. – Mivaweb