Umbraco LiveDll参考独立控制器项目

时间:2016-11-03 11:06:16

标签: umbraco umbraco7

我已LiveDllUmbraco.ModelsBuilder.ModelsMode web.config启用强类型模型。您可能知道或不知道,这会在Umbraco网站的Umbraco.Web.PublishedContentModels文件夹中的名为bin的磁盘上生成一个dll。

我的问题是,我不明白如何获得清洁"来自我(独立)控制器项目的参考。 (我并不特别喜欢在网站bin文件夹中引用模型dll和#34;以及#34;

任何人都知道应该如何设置它?

1 个答案:

答案 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;会很高兴。解决方案。