【问题标题】:Piranha CMS - Creating a new MVC app - brokenPiranha CMS - 创建一个新的 MVC 应用程序 - 坏了
【发布时间】:2015-02-27 16:33:07
【问题描述】:

我正在尝试将 Piranha CMS 集成到现有的 MVC5 Web 应用程序中。 我遵循了http://piranhacms.org/docs/introduction/getting-started 中的推荐路线,使用 Nuget 都是非常简单的事情。 运行应用程序后,我收到一条消息,指出 AutoMapper 不存在,因此通过 Nuget 添加它。到目前为止一切都很好。 再次运行它并得到这个错误:

“无法加载一种或多种请求的类型。检索 LoaderExceptions 属性以获取更多信息。”

这是堆栈:

[ReflectionTypeLoadException: 无法加载一个或多个 请求的类型。检索 LoaderExceptions 属性以获取更多信息 信息。]
System.Reflection.RuntimeModule.GetTypes(RuntimeModule 模块) +0
System.Reflection.RuntimeModule.GetTypes() +4
System.Reflection.Assembly.GetTypes() +70
System.ComponentModel.Composition.Hosting.AssemblyCatalog.get_InnerCatalog() +167 System.ComponentModel.Composition.Hosting.AssemblyCatalog.GetExports(ImportDefinition 定义)+11
System.ComponentModel.Composition.Hosting.c__DisplayClass3.b__2(ComposablePartCatalog 目录)+17 System.Linq.d__142.MoveNext() +177 System.ComponentModel.Composition.Hosting.CatalogExportProvider.InternalGetExportsCore(ImportDefinition definition, AtomicComposition atomicComposition) +205
System.ComponentModel.Composition.Hosting.InnerCatalogExportProvider.GetExportsCore(ImportDefinition definition, AtomicComposition atomicComposition) +14
System.ComponentModel.Composition.Hosting.ExportProvider.TryGetExportsCore(ImportDefinition definition, AtomicComposition atomicComposition, IEnumerable
1& 出口)+39
System.ComponentModel.Composition.Hosting.ExportProvider.TryGetExports(ImportDefinition 定义,AtomicComposition atomicComposition,IEnumerable1& exports) +23
System.ComponentModel.Composition.Hosting.CatalogExportProvider.GetExportsCore(ImportDefinition definition, AtomicComposition atomicComposition) +61
System.ComponentModel.Composition.Hosting.ExportProvider.TryGetExportsCore(ImportDefinition definition, AtomicComposition atomicComposition, IEnumerable
1& 出口)+39
System.ComponentModel.Composition.Hosting.AggregateExportProvider.GetExportsCore(ImportDefinition 定义,AtomicComposition atomicComposition) +311
System.ComponentModel.Composition.Hosting.ExportProvider.TryGetExportsCore(ImportDefinition 定义,AtomicComposition atomicComposition,IEnumerable1& exports) +39
System.ComponentModel.Composition.Hosting.ExportProvider.TryGetExports(ImportDefinition definition, AtomicComposition atomicComposition, IEnumerable
1& 出口)+23
System.ComponentModel.Composition.Hosting.CompositionContainer.GetExportsCore(ImportDefinition 定义,AtomicComposition atomicComposition) +156
System.ComponentModel.Composition.Hosting.ExportProvider.TryGetExportsCore(ImportDefinition 定义,AtomicComposition atomicComposition,IEnumerable1& exports) +39
System.ComponentModel.Composition.Hosting.ExportProvider.GetExports(ImportDefinition definition, AtomicComposition atomicComposition) +36
System.ComponentModel.Composition.Hosting.ImportEngine.TryGetExports(ExportProvider provider, ComposablePart part, ImportDefinition definition, AtomicComposition atomicComposition) +44
System.ComponentModel.Composition.Hosting.ImportEngine.TrySatisfyImportSubset(PartManager partManager, IEnumerable
1 导入,AtomicComposition atomicComposition) +155
System.ComponentModel.Composition.Hosting.ImportEngine.TrySatisfyImportsStateMachine(PartManager partManager,ComposablePart 部分)+439
System.ComponentModel.Composition.Hosting.ImportEngine.TrySatisfyImports(PartManager partManager,ComposablePart 部分,布尔值 shouldTrackImports) +196
System.ComponentModel.Composition.Hosting.ImportEngine.SatisfyImports(ComposablePart 部分)+107
System.ComponentModel.Composition.Hosting.c__DisplayClass2.b__0() +26 System.ComponentModel.Composition.Hosting.CompositionServices.TryInvoke(动作 行动)+33
System.ComponentModel.Composition.Hosting.ComposablePartExportProvider.Compose(CompositionBatch 批次)+841
System.ComponentModel.Composition.Hosting.CompositionContainer.Compose(CompositionBatch 批次)+33
System.ComponentModel.Composition.AttributedModelServices.ComposeParts(CompositionContainer 容器,对象 [] 属性部分)+172
Piranha.Application..ctor() 在 c:\Proj\GitHub\Piranha-2.2\Piranha\Application.cs:105
Piranha.Application..cctor() 在 c:\Proj\GitHub\Piranha-2.2\Piranha\Application.cs:25

请特别注意堆栈的最后两行,Piranha.Application..ctor() in c:\Proj\GitHub\Piranha-2.2\Piranha\Application.cs:105 c:\Proj\GitHub\Piranha-2.2\Piranha\Application.cs:25 中的 Piranha.Application..cctor()。 在 c:\Proj\GitHub\Piranha-2.2 中找不到 .cs 文件?????

只是为了确认这不是我做的蠢事,我已按照步骤将其添加到一个空的 MVC c# 项目中,结果相同。

是我做错了什么还是 Nuget 错了?

【问题讨论】:

    标签: asp.net-mvc piranha-cms


    【解决方案1】:

    Piranha.Core 2.2.4 中缺少 AutoMapper 引用。更新到 2.2.4.1,它应该可以工作了!

    编辑

    您看到这些文件引用的原因是 .pdb 文件包含在二进制包中。当我编译包时,这些文件指向我硬盘上的物理位置。您看到它们是因为您遇到了另一个异常(查看堆栈跟踪)并且 VS 正在尝试调试代码。

    在扫描 Bin 中的程序集以查找 Piranha 扩展时,在 MEF 中引发加载程序异常。这可能是由于某些其他 dll 具有无法解析的引用造成的。其他人过去在某些 Telerik 组件上也遇到过类似的问题。您在应用程序中还使用了哪些其他外部组件?

    问候

    哈坎

    【讨论】:

    • 谢谢,Hakan,但我已经添加了自动映射器,这不是我遇到的问题。问题是 VS2013 正在寻找文件: c:\Proj\GitHub\Piranha-2.2\Piranha\Application.cs:105 Piranha.Application..cctor() in c:\Proj\GitHub\Piranha-2.2\Piranha \Application.cs:25。此文件夹结构不存在,因此引发异常:[ReflectionTypeLoadException:无法加载一个或多个请求的类型。检索 LoaderExceptions 属性以获取更多信息。]
    • 请看我的编辑,你提到的文件与异常无关
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-10
    • 2013-11-11
    • 1970-01-01
    • 2014-12-13
    • 1970-01-01
    • 2014-08-23
    • 2014-04-14
    相关资源
    最近更新 更多