从独立控制器项目引用的 Umbraco LiveDll
Umbraco LiveDll referencing from Separate Controller Project
我在 web.config
中为我的 Umbraco.ModelsBuilder.ModelsMode
启用了 LiveDll
以获得强类型模型。您可能知道也可能不知道,这会在 Umbraco 网站的 bin
文件夹中的磁盘上生成一个名为 Umbraco.Web.PublishedContentModels
的 dll。
我的问题是我不明白如何从我的(单独的)控制器项目中获取 "clean" 引用。 (我不太喜欢在网站 bin
文件夹中引用模型 dll "as is" 的前景。)
有人知道应该如何设置吗?
如果您引用 Umbraco.Web.PublishedContentModels.dll
从您的控制器项目中,您将导致循环引用,这样就不起作用了。
我们的工作方式是将 ModelsBuilder 设置为 Dll
<add key="Umbraco.ModelsBuilder.ModelsMode" value="Dll" />
然后我们设置了一个 Library
文件夹并将 dll 复制到该文件夹。然后另一个项目引用库中的 dll,因此我们不会得到循环引用。
所以我们的项目结构类似于
MySolution
UmbracoWebProject
ControllersProject
Library
我们不想每次 运行 模型构建器时都将 dll 复制到库中,因此我们创建了一个预构建事件,以便在每次构建时为我们复制 dll。
要创建 Pre-Build 事件,请右键单击 Visual Studio 中的 Umbraco 项目并选择属性。 Select 假设您的项目结构如上所示,构建事件并将以下内容添加到预构建中。
IF EXIST "$(ProjectDir)bin\Umbraco.Web.PublishedContentModels.dll" xcopy "$(ProjectDir)bin\Umbraco.Web.PublishedContentModels.dll" "$(SolutionDir)Library" /y
使用 Dll 模式,每当您更改 DocTypes
时,您都必须明确地运行 来自 Umbraco 的模型构建器
这对我们来说效果很好,但它确实是一个需要 Umbraco 和社区多加考虑的领域。如果有一个 'install and forget' 解决方案就好了。
我在 web.config
中为我的 Umbraco.ModelsBuilder.ModelsMode
启用了 LiveDll
以获得强类型模型。您可能知道也可能不知道,这会在 Umbraco 网站的 bin
文件夹中的磁盘上生成一个名为 Umbraco.Web.PublishedContentModels
的 dll。
我的问题是我不明白如何从我的(单独的)控制器项目中获取 "clean" 引用。 (我不太喜欢在网站 bin
文件夹中引用模型 dll "as is" 的前景。)
有人知道应该如何设置吗?
如果您引用 Umbraco.Web.PublishedContentModels.dll 从您的控制器项目中,您将导致循环引用,这样就不起作用了。
我们的工作方式是将 ModelsBuilder 设置为 Dll
<add key="Umbraco.ModelsBuilder.ModelsMode" value="Dll" />
然后我们设置了一个 Library
文件夹并将 dll 复制到该文件夹。然后另一个项目引用库中的 dll,因此我们不会得到循环引用。
所以我们的项目结构类似于
MySolution
UmbracoWebProject
ControllersProject
Library
我们不想每次 运行 模型构建器时都将 dll 复制到库中,因此我们创建了一个预构建事件,以便在每次构建时为我们复制 dll。
要创建 Pre-Build 事件,请右键单击 Visual Studio 中的 Umbraco 项目并选择属性。 Select 假设您的项目结构如上所示,构建事件并将以下内容添加到预构建中。
IF EXIST "$(ProjectDir)bin\Umbraco.Web.PublishedContentModels.dll" xcopy "$(ProjectDir)bin\Umbraco.Web.PublishedContentModels.dll" "$(SolutionDir)Library" /y
使用 Dll 模式,每当您更改 DocTypes
时,您都必须明确地运行 来自 Umbraco 的模型构建器这对我们来说效果很好,但它确实是一个需要 Umbraco 和社区多加考虑的领域。如果有一个 'install and forget' 解决方案就好了。