0

我为 Orchard 创建了一个自定义模块并将其打包为 .nupkg;现在我正在测试部署,但遇到了障碍。

如果我使用 Web 平台安装程序创建一个新的 Orchard 站点并安装我的模块(通过上传 nupkg 文件),一切正常 - 模块的单一功能已启用,并且它在管理菜单中的条目出现。

如果我从源代码构建 Orchard 并安装我的模块(再次通过上传 nupkg 文件),一切都会再次正常运行。

如果我从 Orchard.Web.1.9.1.zip 手动创建一个站点,该站点工作得很好,但是当我通过上传 nupkg 安装我的模块时,安装过程没有错误;该模块出现在模块列表中,并且可以启用/禁用其功能而不会报告错误;但是模块的管理菜单条目没有出现,它提供的小部件也没有出现,模块的程序集也没有添加到 dependencies.xml 中。

注意:我的模块是预编译的(这是我们想要发布的方式),因此它包含一个 bin 文件夹,其中包含其程序集和一些依赖项,但模块文件夹不包含 csproj 文件。因此它应该由 PrecompiledExtensionLoader 加载(至少据我了解http://docs.orchardproject.net/Documentation/Orchard-module-loader-and-dynamic-compilation应该是这种情况)。

我已经检查过的事情:

  • 比较从 Web Platform Installer 安装的目录和使用 WinMerge 从 Orchard.Web.1.9.1.zip 手动创建的安装,似乎没有任何显着差异。除了 WPI 站点中的 dependencies.xml 中列出的所有模块都是使用 PrecompiledExtensionLoader 加载的,而手动创建的站点上加载的模块都是使用 DynamicExtensionLoader 加载的 - 并且如前所述,我的模块未在 dependencies.xml 中列出在手动创建的站点上。

  • Orchard 错误日志中没有记录任何内容,即使我将日志记录到 INFO 级别并尝试卸载并重新安装模块,我也看不到任何指示错误的消息。

  • 其他模块可以从手动创建站点的图库中加载;尽管这些也由 DynamicModuleLoader 加载。

那么有没有人知道为什么这个模块会在 WPI 创建的站点和通过编译源创建的站点的情况下加载,而不是在从 Orchard.Web.1.9.1.zip 文件创建的站点上加载。

如果做不到这一点,谁能告诉我如何从模块加载器中获得更详细的注销?

4

1 回答 1

0

当我遇到这样的事情时,它通常与缓存有关。我会让站点在没有您的自定义模块的情况下运行,添加您的模块,然后重新启动站点。

于 2015-10-08T20:41:29.437 回答