Orchard如何解析模块中的引用?

zim*_*nen 7 orchardcms orchardcms-1.6

文档(此处此处)特别缺乏有关如何解析模块中的引用的信息:

参考决议

(TODO:解释Orchard如何通过查看csproj文件的"引用"部分以及查看每个模块"bin"目录中删除的其他程序集二进制文件来确定引用)

不幸的是,这正是我需要的信息.我创建了一个自定义模块,它引用了一个自定义的内部DLL.当我尝试使用此DLL中的类时,我得到以下异常:

无法从程序集'Custom,Version = [version],Culture = [culture],PublicKeyToken = [token]'加载类型'Custom.MyClass'.

因此,我的问题是:Orchard对模块引用做了什么,是否有什么特别的东西让Orchard拿起模块的引用?

编辑:看起来可以在这篇博客文章及其评论中找到更好的信息.但是,我的自定义程序集已经存在src\Orchard.Web\App_Data\Dependencies,我仍然收到错误.

EDIT2:我们在lib文件夹中有一个自定义DLL的副本,所以我尝试引用那个(因为我们有另一个成功完成的模块),但仍然没有变化.

EDIT3 ::参考前两个编辑,它不是从lib文件夹复制到App_Data\Dependencies文件夹.我刚刚在lib文件夹中添加了一个新的DLL 并引用它,它没有出现在该Dependencies文件夹中.我认为当前Custom.dll并没有取代那里的那个,这就是我收到错误的原因.但是为什么Orchard没有复制到Dependencies文件夹中?

0lu*_*sz0 1

为了让 Orchard 使用您的自定义模块,您需要将其放在路径:your_web_application_path/Modules/your_custom_module 中,我们使用符号链接来实现这一点。

然后您的主模块(Web 应用程序)应该会看到您的自定义模块。如果您要向现有的 Orchard 应用程序添加新模块,您可能需要从管理面板/模块菜单手动启用它。对于新安装,您可以将功能启用指令添加到您的配方中,并将依赖项添加到主 module.txt 文件(假设您希望模块始终打开)。

另一个故障排除提示:

  • 确保您的模块构建路径设置为 bin/ 文件夹(而不是某些 bin/debug 等)
  • 确保您的模块确实是一个果园模块(有 module.txt 文件)并且可以在管理面板/模块中看到
  • 确保它已启用,新模块默认情况下处于禁用状态
  • 确保引用的库是从静态文件夹引用的,我的意思是不是从像 bin 这样的东西引用,它在重建过程中被清理