7

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

参考分辨率

(TODO:通过查看 csproj 文件的“参考”部分以及查看每个模块“bin”目录中放置的其他程序集二进制文件来解释 Orchard 如何计算参考)

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

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

所以,我的问题是:Orchard 对模块引用做了什么,我需要做什么特别的事情才能让 Orchard 获取我的模块引用?

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

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

EDIT3 :: 参考前两次编辑,它不是从lib文件夹复制到App_Data\Dependencies文件夹。我只是在文件夹中添加了一个新的DLLlib并引用它,它并没有出现在Dependencies文件夹中。我认为电流Custom.dll并不能取代现有的电流,这就是为什么我得到错误的原因。但是为什么 Orchard 不复制到Dependencies文件夹中呢?

4

1 回答 1

1

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

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

另一个故障排除提示:

  • 确保您的模块构建路径设置为 bin/ 文件夹(不是一些 bin/debug 等)
  • 确保您的模块确实是一个果园模块(有 module.txt 文件)并且在管理面板/模块中可见
  • 确保它已启用,新模块默认禁用
  • 确保引用的库是从静态文件夹中引用的,我的意思不是来自像 bin 这样的东西,它在重建期间被清理
于 2013-05-18T10:12:15.253 回答