我正在构建一个包含多个模块的Prism应用程序,其中一个模块(MyModule
)包含我创建的用户控件(MyUserControl
)。 MyUserControl
测试正常,但当我将其添加到MyModule
并运行应用时,我会遇到以下异常:
“找不到类型MyUserControl
。编译时使用的程序集可能与加载时使用的程序集不同,但缺少类型。”
我可以通过向我的Shell应用程序添加对MyUserControl
的引用来修复错误。但是,当然,这会破坏Prism的整个目的,因为Shell不使用MyUserControl
- 只有MyModule
使用它。
MyUserControl基于WPF Toolkit中的WPF Calendar控件,似乎有类似的问题。我在另一个不依赖于WPF Toolkit的模块中有另一个用户控件,并且我没有为该控件获得此异常。
有关如何在不将Shell连接到MyUserControl的情况下解决此问题的任何建议?感谢。
答案 0 :(得分:3)
我认为您需要的只是将MyUserControl.dll复制到主app文件夹中 (在主应用程序中添加引用就是这样做)最简单的方法是使用post build事件。 右键单击MyUserControl项目,选择属性,在Post-build命令行类型中选择“Build Events”选项卡: xcopy $(TargetFileName)$(SolutionDir)\你的主要文件夹文件夹\ bin \ Debug \ Modules \ / Y 就是这样,一旦构建了MyUserControl,它将自动复制到主app文件夹中,然后当你运行应用程序时,使用它的模块将能够找到它。