我已LiveDll
为Umbraco.ModelsBuilder.ModelsMode
web.config
启用强类型模型。您可能知道或不知道,这会在Umbraco网站的Umbraco.Web.PublishedContentModels
文件夹中的名为bin
的磁盘上生成一个dll。
我的问题是,我不明白如何获得清洁"来自我(独立)控制器项目的参考。 (我并不特别喜欢在网站bin
文件夹中引用模型dll和#34;以及#34;
任何人都知道应该如何设置它?
答案 0 :(得分:0)
如果您引用Umbraco.Web.PublishedContentModels.dll 从您的控制器项目中,您将获得循环引用,以便不会工作。
我们的工作方式是将ModelsBuilder设置为Dll
<add key="Umbraco.ModelsBuilder.ModelsMode" value="Dll" />
然后我们设置了Library
文件夹并将dll复制到该文件夹。然后另一个项目引用库中的dll,这样我们就不会得到循环引用。
所以我们的项目结构就像
MySolution
UmbracoWebProject
ControllersProject
Library
每次运行模型构建器时,我们都不想将dll复制到库中,因此我们创建了一个Pre-Build事件,以便在每次构建时为我们复制dll。
要创建Pre-Build事件,请右键单击Visual Studio中的Umbraco项目,然后选择“属性”。选择构建事件并将以下内容添加到预构建中,假设您的项目结构如上所述。
IF EXIST "$(ProjectDir)bin\Umbraco.Web.PublishedContentModels.dll" xcopy "$(ProjectDir)bin\Umbraco.Web.PublishedContentModels.dll" "$(SolutionDir)Library" /y
使用Dll模式,每当您更改DocType时,都必须从Umbraco显式运行模型构建器
这对我们来说很有效,但它确实感觉好像是一个仍需要Umbraco和社区更多思考的领域。安装和忘记&#39;会很高兴。解决方案。