目录中找不到模块

时间:2015-12-08 11:00:59

标签: c# wpf prism mef

我尝试从应用配置文件中访问2个模块。

enter image description here

图像是ModuleA的项目属性。

解决方案名称为SampleApp

项目是ModuleA,Class是ModuleA(ModuleB相同)

配置看起来像这样

    <?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="modules" type="Prism.Modularity.ModulesConfigurationSection, Prism.Wpf" />
  </configSections>
  <modules>
    <module assemblyFile="ModuleA.ModuleA.dll" moduleType="ModuleA.ModuleA, ModuleA.ModuleA, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" moduleName="ModuleA" startupLoaded="false" />   
    <module assemblyFile="ModuleB.ModuleB.dll" moduleType="ModuleB.ModuleB, ModuleB.ModuleB, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" moduleName="ModuleB" startupLoaded="false">
      <dependencies>
        <dependency moduleName="ModuleA"/>
      </dependencies>
    </module>
  </modules>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1"/>
  </startup>
</configuration>

我将congif文件设置为资源,但是当我编译时,我收到错误

目录中找不到模块ModuleA。

我的配置是否正确?

1 个答案:

答案 0 :(得分:0)

首先,建议命名与项目不同的Module类,以帮助消除混淆。像ModuleAModule.cs

这样的东西

您的配置应如下所示:

<module assemblyFile="Assembly.dll" moduleType="Assembly.ModuleName, Assembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" moduleName="ModuleName" startupLoaded="true"/>

您还需要确保将Module程序集复制到执行目录中。因此,请确保在Module post build事件中有一个xcopy,以将程序集复制到正确的位置。