Silverlight 4.0 Silverlight应用程序中的未处理错误无法定位模块

Silverlight 4.0 Silverlight应用程序中的未处理错误无法定位模块,silverlight-4.0,.net-4.0,module,prism,mef,Silverlight 4.0,.net 4.0,Module,Prism,Mef,我的解决方案包含4个Silverlight项目——一个主项目、两个模块项目和最后一个共享项目(用于公共接口等) 主项目和模块项目彼此没有引用(只是为了共享项目) 您可以在下面找到我的模块的定义: [ModuleExport("ServiceModule", typeof(ServiceModule), InitializationMode = InitializationMode.WhenAvailable)] public class ServiceModule : IModule [Mod

我的解决方案包含4个Silverlight项目——一个主项目、两个模块项目和最后一个共享项目(用于公共接口等)

主项目和模块项目彼此没有引用(只是为了共享项目)

您可以在下面找到我的模块的定义:

[ModuleExport("ServiceModule", typeof(ServiceModule), InitializationMode = InitializationMode.WhenAvailable)]
public class ServiceModule : IModule

[ModuleExport("ViewModule",
    typeof(ViewModule),
    DependsOnModuleNames = new string[] { "ServiceModule" },
    InitializationMode = InitializationMode.WhenAvailable)]
public class ViewModule : IModule
我将ModuleCatalog中的模块添加到主项目的派生MefBootTrapper类中(我使用模块的代码注册,而不是CreateFromXaml方法):

protected override void ConfigureModuleCatalog()
{
ModuleCatalog.AddModule(
新模块info()
{
ModuleName=“ServiceModule”,
ModuleType=“SilverlightabledService.ModuleDefinitions.ServiceModule,SilverlightabledService,版本=1.0.0.0,区域性=中性,PublicKeyToken=ca4f032071a86aea”,
Ref=“silverlightabledservice.xap”,
InitializationMode=InitializationMode.WhenAvailable
}
);
ModuleCatalog.AddModule(
新模块info()
{
ModuleName=“ViewModule”,
ModuleType=“RedOrBlackModule.ModuleDefinitions.ViewModule,RedOrBlackModule,版本=1.0.0.0,区域性=中性,PublicKeyToken=ca4f032071a86aea”,
Ref=“RedOrBlackModule.xap”,
InitializationMode=InitializationMode.WhenAvailable,
DependsOn=(新集合(新字符串[]{“ServiceModule”}))
}
);
}
从上面的代码可以看出,ModuleCalog模块名称与ModuleExportAttribute中的模块名称相同,但我得到以下异常:

未捕获错误:Silverlight应用程序中未处理的错误无法在导出的模块中找到类型为“SilverlightabledService.ModuleDefinitions.ServiceModule,SilverlightabledService,Version=1.0.0.0,Culture=neutral,PublicKeyToken=ca4f032071a86aea”的模块。确保模块目录中的模块名称与模块类型的ModuleExportAttribute中指定的名称匹配。如果Microsoft.Practices.Prism.Modularity.ModuleInitializer.HandleModuleInitializationError(ModuleInfo ModuleInfo,String assemblyName,异常)


这似乎是一个很容易的问题,但我还无法找到解决方案。

可能找不到该模块的几个原因。请参阅此博客文章,了解它们是什么以及如何调试它们:。

谢谢。这对我没有帮助(我以前发现过这个链接)。无论如何,我认为,你的答案是单一的;)我会一步一步地找到解决办法。
protected override void ConfigureModuleCatalog()
{
    ModuleCatalog.AddModule(
      new ModuleInfo()
      {
          ModuleName = "ServiceModule",
          ModuleType = "SilverlightEnabledService.ModuleDefinitions.ServiceModule, SilverlightEnabledService, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ca4f032071a86aea",
          Ref = "SilverlightEnabledService.xap",
          InitializationMode = InitializationMode.WhenAvailable
      }
    );

    ModuleCatalog.AddModule(
      new ModuleInfo()
      {
          ModuleName = "ViewModule",
          ModuleType = "RedOrBlackModule.ModuleDefinitions.ViewModule, RedOrBlackModule, Version=1.0.0.0, Culture=neutral, PublicKeyToken=ca4f032071a86aea",
          Ref = "RedOrBlackModule.xap",
          InitializationMode = InitializationMode.WhenAvailable,
          DependsOn = (new Collection<string>(new string[] { "ServiceModule" }))
      }
    );
}