【问题标题】:Mono - Could not load file or assemblyMono - 无法加载文件或程序集
【发布时间】:2010-02-05 22:34:02
【问题描述】:

我刚刚将我的项目导出到我的新 imac,并将我的解决方案加载到 monodevelop。 编译成功后,我启动了项目,总是报同样的错误。

** (/Library/Frameworks/Mono.framework/Versions/2.6.1/lib/mono/2.0/xsp2.exe:1576):警告**:以下程序集引用自/private/var/folders/ 9y/9ypfv24bEwieHw+Yy+PUsU+++TI/-Tmp-/nhu-temp-aspnet-0/ebc9e2c6/assembly/shadow/7f5f6265/859daf16_fac2cd73_00000001/Centrism.Administration.UI.dll 无法加载: 装配:Centrism.Core (assemblyref_index=3) 版本:0.0.3688.40278 公钥:(无) 在全局程序集缓存、MONO_PATH 环境变量中列出的路径或执行程序集的位置(/var/folders/9y/9ypfv24bEwieHw+Yy+PUsU+++TI/-Tmp-/ nhu-temp-aspnet-0/ebc9e2c6/assembly/shadow/7f5f6265/859daf16_fac2cd73_00000001/)。

**(/Library/Frameworks/Mono.framework/Versions/2.6.1/lib/mono/2.0/xsp2.exe:1576):警告**:无法加载文件或程序集'Centrism.Core,版本=0.0.3688.40278, Culture=neutral, PublicKeyToken=null' 或其依赖项之一。

在其他项目中,程序集可以正常工作并且可以加载。

【问题讨论】:

    标签: mono assemblies gac monodevelop xsp


    【解决方案1】:

    我遇到了与应用程序程序集位于同一路径的 dll 相同的问题,问题是 dll 名称的大小写与预期的不同。所以abc.dll不见了,在文件夹中它被命名为abc.dll,重命名后,它工作了。

    【讨论】:

      【解决方案2】:

      我想我会问一个显而易见的问题:

      Mono 知道并且可以访问的地方是否有 Centrism.Core.dll?

      【讨论】:

      • 您好,感谢您的回答。包含在项目解决方案中是正常的。但我还将 MONO_PATH 变量设置为我将程序集编译到的全局路径。但它无论如何都不会运行。
      • 如果添加以下环境变量,它应该会生成更多关于 Mono 尝试从何处加载的信息:MONO_LOG_LEVEL="debug" MONO_LOG_MASK="dll"。
      【解决方案3】:

      如果您的项目引用 Centrism.Administration.UI.dll,并且它不在 iMac 上的 GAC 中,最简单的解决方案可能是将对该程序集的引用设置为“本地副本”。对于 web 项目,这会将程序集复制到应用程序的 Bin 目录中,xsp 应该能够在其中获取它。

      【讨论】:

        【解决方案4】:

        将新程序集添加到现有项目(其本身被单元测试项目引用)时出现此错误。

        因为两个项目中都没有包含该程序集,所以单元测试会出错。解决方案是在项目文件中添加Copy标签:

        <Copy SourceFiles="$(ProjectDir)\dlls\NewAssembly.dll" DestinationFolder="$(OutputPath)" SkipUnchangedFiles="true" />
        

        想必也可以直接将引用添加到单元测试中(这个引用没有直接使用,所以可以避免使用上面)。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-08-17
          相关资源
          最近更新 更多