gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 00:44:29 29 4
gpt4 key购买 nike

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

References Resolution

(TODO: Explain how Orchard figures out references by looking at the "References" section of the csproj file as well as looking at additional assembly binaries dropped in each module "bin" directory)


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

Could not load type 'Custom.MyClass' from assembly 'Custom, Version=[version], Culture=[culture], PublicKeyToken=[token]'.


所以,我的问题是:Orchard 对模块引用做了什么,我需要做什么特别的事情才能让 Orchard 获取我的模块引用?
编辑 : 似乎可以在 this blog post 中找到一些更好的信息及其评论。但是,我的自定义程序集已经存在于 src\Orchard.Web\App_Data\Dependencies 中。 ,我仍然收到错误消息。
编辑2 : 我们在 lib 中有自定义 DLL 的副本文件夹,所以我尝试引用那个文件夹(因为我们有另一个模块可以成功),但仍然没有改变。
编辑3 ::引用前两次编辑,它不是从 lib 复制的文件夹到 App_Data\Dependencies文件夹。我刚刚在 lib 中添加了一个新的 DLL。文件夹并引用它,它没有出现在 Dependencies文件夹。我认为当前 Custom.dll没有替换那里的那个,这就是为什么我得到我的错误。但是为什么 Orchard 不复制到 Dependencies文件夹?

最佳答案

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

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

另一个故障排除提示:

  • 确保您的模块构建路径设置为 bin/文件夹(不是某些 bin/debug 等)
  • 确保您的模块确实是一个 Orchard 模块(有 module.txt 文件)并且在管理面板/模块
  • 中可见
  • 确保它已启用,新模块默认禁用
  • 确保引用的库是从静态文件夹中引用的,我的意思不是来自像 bin 这样的东西,它在重建期间被清理
  • 关于orchardcms - Orchard 如何解析模块中的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16366143/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com