wpf - 异常 : "The assembly used when compiling might be different than that used when loading and the type is missing."

标签 wpf user-controls prism

我正在构建一个包含多个模块的 Prism 应用程序,其中一个 (MyModule) 包含我创建的用户控件 (MyUserControl)。 MyUserControl 测试正常,但是当我将它添加到 MyModule 并运行应用程序时,出现此异常:

“找不到类型 MyUserControl。编译时使用的程序集可能与加载时使用的程序集不同,并且缺少类型。”

我可以通过将对 MyUserControl 的引用添加到我的 Shell 应用程序来修复错误。但当然,这违背了 Prism 的全部目的,因为 Shell 不使用 MyUserControl——只有 MyModule 使用它。

MyUserControl 基于 WPF 工具包中的 WPF 日历控件,它似乎有类似的问题。我在另一个不依赖于 WPF 工具包的模块中有另一个用户控件,并且我没有得到该控件的此异常。

关于如何在不将 Shell 耦合到 MyUserControl 的情况下解决此问题的任何建议?谢谢。

最佳答案

我认为您需要的只是将 MyUserControl.dll 复制到主应用程序文件夹中 (在您的主应用程序中添加引用就是这样做的)最简单的方法是使用构建后事件。 右键单击 MyUserControl 项目,选择属性,选择“Build Events”选项卡,在 Post-build 命令行类型中: xcopy $(TargetFileName) $(SolutionDir)\YOUR MAIN APP FOLDER\bin\Debug\Modules\/Y 就是这样,一旦构建了 MyUserControl,它将自动复制到主应用程序文件夹中,然后当您运行该应用程序时,使用它的模块将能够找到它。

关于wpf - 异常 : "The assembly used when compiling might be different than that used when loading and the type is missing.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2283033/

相关文章:

visual-studio-2010 - VS Designer问题。如何更改父控件

c# - 向WPF Prism MVVM应用程序添加后台线程

c# - Prism v4 使用 DirectoryModuleCatalog 按需加载模块

ASP.NET 用户控件 OnError

c# - wpf 将列表框项目绑定(bind)到静态列表

c# - 如何在mvvm中绑定(bind)鼠标双击命令

c# - 如何挂接到 WPF 窗口句柄以监听 USB 事件

asp.net-mvc - 检查用户是否在用户控件中登录 Asp.net MVC

wpf - Prism 和循环依赖

c# - Resharper 无法识别正确的 ViewModel 类型