C# 无法加载文件或程序集';WPG,PublicKeyToken=null';或者它的一个依赖项

C# 无法加载文件或程序集';WPG,PublicKeyToken=null';或者它的一个依赖项,c#,wpf,module,prism,propertygrid,C#,Wpf,Module,Prism,Propertygrid,我正在使用PRISM和我在CodePlex中找到的一个新控件:WPF属性网格 当我测试演示时,一切都进行得很顺利 我还没有开始使用棱镜。如果我把控件放在一个Shell中,它也可以正常工作。问题是如果我把控件放在一个模块中,它会抛出一个错误 无法加载文件或程序集“WPG,PublicKeyToken=null”或其中一个 它的依赖性。系统找不到指定的文件 我真的不知道那个错误。有人知道如何修复它吗 编辑: 这个用户控件是模块的一部分,这是一个相当普遍的错误,通常是由元素的动态构造引起的。虽

我正在使用PRISM和我在CodePlex中找到的一个新控件:WPF属性网格

当我测试演示时,一切都进行得很顺利

我还没有开始使用棱镜。如果我把控件放在一个Shell中,它也可以正常工作。问题是如果我把控件放在一个模块中,它会抛出一个错误

无法加载文件或程序集“WPG,PublicKeyToken=null”或其中一个 它的依赖性。系统找不到指定的文件

我真的不知道那个错误。有人知道如何修复它吗

编辑:



这个用户控件是模块的一部分,这是一个相当普遍的错误,通常是由元素的动态构造引起的。虽然您可能已经添加了对WPG程序集的引用,但也必须实现其所有依赖项

  • 尝试查看WPG包的源代码,看看是否有任何引用是由它生成的,而这些引用没有出现在您的输出位置中
  • 使用类似的工具可以帮助您检查内部依赖关系

确保您的参考设置正确。当项目B在XAML中使用程序集(如WPG)时,我遇到了这个问题,但项目A实际上创建了项目B类的实例。向项目A添加WPG引用是XAML解析器以这种方式工作所必需的。在项目A中引用项目B是不够的。

我在使用Visual Studio 2010、SP1和Team Server时遇到了同样的问题。最简单的解决方案(尽管需要一整天的调试)是:

  • 在项目/解决方案(比如ProjB)中需要的地方添加引用(比如ProjA.dll)
  • 如果您看到另一个与ProjB中找不到的方法(与ProjA.dll相关)相关的错误,请转到ProjA,在解决方案资源管理器中打开它,使用“添加现有项”添加其中的所有项。清理并构建ProjA.dll,再次在ProjB中引用正确的dll。它应该有用
    有时,即使项目在源代码管理中,并且您可以看到它们、处理它们以及签入/签出;可以看到这样的间歇性问题。

    您能否向我们展示引用WPG程序集的
    xmlns:
    行,并告诉我们它在哪个xaml文件中找到自己?请使用fuslogvw.exe解决程序集解析问题。
    <UserControl x:Class="ConfigurationManagerModule.Views.ConfigurationView"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:prism="http://www.codeplex.com/prism"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:wpg="clr-namespace:WPG;assembly=WPG"
        >