我创建了一个在创建它的解决方案中工作正常的模块,即果园源代码。然后我使用包创建打包它。
编辑:我现在意识到安装Visual Studio 2012后问题立即出现。
如果我现在使用软件包在不同的应用程序上安装模块并从文件安装,所有警报显示模块已安装,它出现在功能列表中,它已启用...但没有菜单项,没有条目在迁移表中,没有。
编辑:日志中没有任何内容。但是,这些文件正确安装在站点的modules文件夹中。
如果模块在创建它的源代码解决方案中正常工作,那么使用软件包阻止正确安装模块会出现什么问题?
有什么建议吗?
编辑:
如何安装Visual Studio 2012影响了Orchard?
我注意到安装visual studio 2012会导致同时安装各种sql server 2012。这可能是相关的吗? EG,这就是迁移代码从未运行的原因吗?
BertrandLeRoy表示,在GAC中安装ASP.NET MVC 4以及Razor 2(两者都附带VS 2012)都是问题所在。
他建议升级到Orchard 1.5.x.
然而:
我尝试过使用Orchard 1.5.1的新安装,问题是一样的:
使用VS 2012和Orchard 1.5.1的源代码创建新模块,从VS运行果园站点时,模块正确显示。
创建一个软件包,然后将其安装到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就没有解决它。
也就是说,当我在网络服务器上安装mvc 4时会发生什么,因为我不可避免地要为其他非Orchard应用程序使用?
答案 0 :(得分: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模块加载器和动态编译的this documentation。它在凌晨2点有点复杂,但我收集的是我的模块对另一个模块的引用(在这种情况下为Orchard.Autoroute
)导致生产环境中的日志消息(上图)。我删除了我的模块的引用和对Orchard.Autoroute
的依赖,然后安装得很好。
documentation解释了如何动态编译模块以及 /Config/HostComponents.config 中的设置如何改变工作方式。