3

设置:

我创建了一个在创建它的解决方案(即果园源代码)中运行良好的模块。然后我使用package create将其打包。

编辑:我现在意识到问题在安装 Visual Studio 2012 后立即出现。

问题:

如果我现在使用包在不同的应用程序上安装模块并从文件安装,所有警报都显示模块已安装,它出现在功能列表中,它已启用......但没有菜单项,没有条目迁移表,什么都没有。

编辑:日志中没有任何内容。但是,这些文件已正确安装在站点的模块文件夹中。

问题:

鉴于模块在创建它的源代码解决方案中工作正常,可能会出现什么问题阻止使用包正确安装模块?

有什么建议么?

编辑:

安装 Visual Studio 2012 对 Orchard 有何影响?

我注意到安装 Visual Studio 2012 会导致同时安装各种位的 sql server 2012。这可能是相关的吗?例如,这就是迁移代码从不运行的原因吗?

根据 Bertrand Le Roy 的评论进行编辑(见下面这个问题):

BertrandLeRoy 说,在 GAC 中安装 ASP.NET MVC 4 以及 Razor 2(两者都随 VS 2012 提供)是问题所在。

他建议升级到 Orchard 1.5.x。

然而:

我尝试使用新安装的 Orchard 1.5.1,但问题是一样的:

  1. 使用 VS 2012 和 Orchard 1.5.1 的源代码创建一个新模块,从 VS 运行果园站点时该模块正确显示。

  2. 创建一个包,然后将其安装到 Orchard 1.5.1 站点中,例如,使用 WebMatrix,运行然后安装该包具有以下效果:

2.1。仪表板中的警报告诉我该软件包已正确安装。

2.2. 但是,启用该功能没有任何作用。

2.3. 这并不奇怪,因为安装包甚至还没有运行迁移。

我能做的最后一个测试是查看包是否在没有安装 asp.net mvc4 的 Web 服务器上运行。完成后我会回帖。

然而,重点是使用 Orchard 1.5.1 会产生完全相同的结果。所以,如果问题真的是机器上有 MVC 4 和 Razor 2,那么 Orchard 1.5.1 并没有解决它。

即,当我在 Web 服务器上安装 mvc 4 时会发生什么,因为我不可避免地必须为其他非 Orchard 应用程序安装 mvc 4?

4

1 回答 1

0

我在 1.8.1 版本上遇到了同样的事情。也就是说,该模块似乎安装得很好,但实际上并没有执行迁移或正确加载。

最初,我在日志中没有看到任何表明存在问题的信息。但是,在调整/Config/log4net.config文件以记录ALL而不只是ERROR消息之后。我懂了:

... Orchard.Environment.Extensions.Loaders.PrecompiledExtensionLoader - 
- Extension "Transformalize" will not be loaded as pre-compiled extension 
because one or more referenced extension is dynamically compiled

说我的模块“不会作为预编译扩展加载,因为一个或多个引用的扩展是动态编译的”部分似乎解释了为什么我的模块没有加载。因此,我在 Google 上搜索并找到了有关Orchard 模块加载器和动态编译的文档。凌晨 2 点有点复杂,但我收集到的是我的模块对另一个模块的引用(在这种情况下)导致生产环境中的日志消息(上图)。我删除了我的模块对 的引用和依赖,然后它安装得很好。Orchard.AutorouteOrchard.Autoroute

文档解释了如何动态编译模块以及/Config/HostComponents.config中的设置如何改变事情的工作方式。

于 2014-07-19T06:51:24.293 回答