zoukankan      html  css  js  c++  java
  • Prism 问题总结一: 在模块中引用公用程序集出错

    问题描述:

    通常我们在各子模块中都会用到应用程序公用的程序集,如:“Touch.Modules.ModuleA ”会引用“Touch.Infrastructure”

    image

    在默认情况下,它会将“Touch.Infrastructure”复制到“Touch.Modules.ModuleA ”的生成目录(因为是Module所以我是让他生成到一个单独的目录中:image )。而执行程序“Touch” (程序入口)本身也引用了“Touch.Infrastructure”  这样就会导致2个地方都有“Touch.Infrastructure”,在Prism 中加载模块时就会报如下错误:

    An exception occurred while trying to create region objects.
        - The most likely causing exception was: 'System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> Microsoft.Practices.Prism.Regions.Behaviors.RegionCreationException: An exception occurred while creating a region with name 'NavRegion'. The exception was: Microsoft.Practices.ServiceLocation.ActivationException: Activation error occured while trying to get instance of type AutoPopulateExportedViewsBehavior, key "" ---> System.InvalidOperationException: 序列包含一个以上的元素
       在 System.Linq.Enumerable.Single[TSource](IEnumerable`1 source)
       在 Microsoft.Practices.Prism.MefExtensions.MefServiceLocatorAdapter.DoGetInstance(Type serviceType, String key)
       在 Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance(Type serviceType, String key)
       --- 内部异常堆栈跟踪的结尾 ---
       在 Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance(Type serviceType, String key)
       在 Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance(Type serviceType)
       在 Microsoft.Practices.Prism.Regions.RegionBehaviorFactory.CreateFromKey(String key)
       在 Microsoft.Practices.Prism.Regions.RegionAdapterBase`1.AttachDefaultBehaviors(IRegion region, T regionTarget)
       在 Microsoft.Practices.Prism.Regions.RegionAdapterBase`1.Initialize(T regionTarget, String regionName)
       在 Microsoft.Practices.Prism.Regions.RegionAdapterBase`1.Microsoft.Practices.Prism.Regions.IRegionAdapter.Initialize(Object regionTarget, String regionName)
       在 Microsoft.Practices.Prism.Regions.Behaviors.DelayedRegionCreationBehavior.CreateRegion(DependencyObject targetElement, String regionName).  ---> Microsoft.Practices.ServiceLocation.ActivationException: Activation error occured while trying to get instance of type AutoPopulateExportedViewsBehavior, key "" ---> System.InvalidOperationException: 序列包含一个以上的元素
       在 System.Linq.Enumerable.Single[TSource](IEnumerable`1 source)
       在 Microsoft.Practices.Prism.MefExtensions.MefServiceLocatorAdapter.DoGetInstance(Type serviceType, String key)
       在 Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance(Type serviceType, String key)
       --- 内部异常堆栈跟踪的结尾 ---
       在 Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance(Type serviceType, String key)
       在 Microsoft.Practices.ServiceLocation.ServiceLocatorImplBase.GetInstance(Type serviceType)
       在 Microsoft.Practices.Prism.Regions.RegionBehaviorFactory.CreateFromKey(String key)
       在 Microsoft.Practices.Prism.Regions.RegionAdapterBase`1.AttachDefaultBehaviors(IRegion region, T regionTarget)
       在 Microsoft.Practices.Prism.Regions.RegionAdapterBase`1.Initialize(T regionTarget, String regionName)
       在 Microsoft.Practices.Prism.Regions.RegionAdapterBase`1.Microsoft.Practices.Prism.Regions.IRegionAdapter.Initialize(Object regionTarget, String regionName)
       在 Microsoft.Practices.Prism.Regions.Behaviors.DelayedRegionCreationBehavior.CreateRegion(DependencyObject targetElement, String regionName)
       --- 内部异常堆栈跟踪的结尾 ---
       在 Microsoft.Practices.Prism.Regions.Behaviors.DelayedRegionCreationBehavior.CreateRegion(DependencyObject targetElement, String regionName)
       在 Microsoft.Practices.Prism.Regions.Behaviors.DelayedRegionCreationBehavior.TryCreateRegion()
       在 Microsoft.Practices.Prism.Regions.Behaviors.DelayedRegionCreationBehavior.OnUpdatingRegions(Object sender, EventArgs e)
       --- 内部异常堆栈跟踪的结尾 ---
       在 System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
       在 System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
       在 System.Delegate.DynamicInvokeImpl(Object[] args)
       在 System.Delegate.DynamicInvoke(Object[] args)
       在 Microsoft.Practices.Prism.Events.WeakDelegatesManager.Raise(Object[] args)
       在 Microsoft.Practices.Prism.Regions.RegionManager.UpdateRegions()'.
        But also check the InnerExceptions for more detail or call .GetRootException().

    解决办法

    将“Touch.Modules.ModuleA ”引用的“Touch.Infrastructure”,复制本地设置为“false”就对了。

    image

  • 相关阅读:
    中国内地、台湾、香港、澳门和国外DNS服务器地址列表
    科学、道法、哲学
    Away 3d 基本属性
    away 3d的一些问题
    Adobe Flash CC 2014 下载及破解
    html5结合flash实现视频文件在所有主流浏览器兼容播放
    Html wmode 标签参数详解
    九宫格
    flash/flex 编译错误汇总
    Redis在windows下安装过程(转)
  • 原文地址:https://www.cnblogs.com/jiguixin/p/2817696.html
Copyright © 2011-2022 走看看