“在匹配指定绑定约束的类型'TestWPF.MainWindow'上调用构造函数引发异常。” - 如何解决这个问题?

Posted

技术标签:

【中文标题】“在匹配指定绑定约束的类型\'TestWPF.MainWindow\'上调用构造函数引发异常。” - 如何解决这个问题?【英文标题】:"The invocation of the constructor on type 'TestWPF.MainWindow' that matches the specified binding constraints threw an exception."- how to fix this?“在匹配指定绑定约束的类型'TestWPF.MainWindow'上调用构造函数引发异常。” - 如何解决这个问题? 【发布时间】:2012-02-17 17:09:32 【问题描述】:

我正在使用 WPF。当我试图在代码中声明SQLiteConnection 时,问题就出现了-

The invocation of the constructor on type 'TestWPF.MainWindow' that matches the specified binding constraints threw an exception.

InnerException: Make sure that the file is a valid .NET Framework assembly.

谁能告诉我,如何解决?

【问题讨论】:

请出示上述构造函数的代码。看起来您正在尝试将文件作为不是 .NET 程序集的程序集加载。 【参考方案1】:

如果您在异常窗口中单击View Detail...,您可以查看InnerException。展开该节点,您将确切地看到出了什么问题。

【讨论】:

这几乎是每个人的问题的答案。它应该被标记为答案。令人惊讶的是,有多少人懒得去看(或不知道)InnerException 由于乔的评论,我最初认为这是屈尊俯就,但你是对的。这是很少见的情况之一,无用的错误消息中隐藏着大量内容。 异常窗口在哪里? @Demodave - 假设您使用的是 Visual Studio,当调试器捕获错误时会弹出异常窗口。【参考方案2】:

在我的具体情况下,我得到这个是因为我的一些引用程序集在 x64 和 x86 之间不匹配。显然我正在绑定到需要由运行时加载的东西。

我在这里提到这一点是为了提醒您检查您的构建配置,如果您查看过其他任何地方!

【讨论】:

【参考方案3】:

我通过在app.config中添加以下内容解决了这个问题,

<configuration> <startup useLegacyV2RuntimeActivationPolicy="true" /> </configuration>

我是通过用户FCAA 在 MSDN 上的文章 " Troubleshooting Exceptions: System.IO.FileLoadException" 下方添加的社区发现的。

【讨论】:

cdn.meme.am/instances/500x/67899834.jpg 很好地解决了这个问题并将其告知其他人。 也可能是默认命名空间【参考方案4】:

我遇到了同样的错误,在浪费了大约 2 个小时之后,发现是我的 SQL Server 服务没有运行。不确定这是否可以帮助某人,但它确实解决了我刚刚启动服务的问题。

【讨论】:

【参考方案5】:

提到的异常是非常通用的,例如,当构造函数中的代码失败时,您可以收到它。我遇到了一个显示类似文本的 IO 异常案例。进入代码可能会提供解决此问题的提示,否则可能不明显。

【讨论】:

【参考方案6】:

当我使用默认值指定 DependencyPropertyFrameworkPropertyMetadata 时,我得到了它

默认值是

new AdressRecord  Name = "<new>", Adress = "?" 

我替换为

default(AddressRecord)

vs2015 吃了它

   public static readonly DependencyProperty AdressRecordsProperty =
       DependencyProperty.Register("AdressRecords", 
           typeof(ObservableCollection<AdressRecord>), 
           typeof(PageViewModel), 
           new FrameworkPropertyMetadata(
               default(AdressRecord),//This noes not work: new AdressRecord  Name = "<new>", Adress = "?" ,
               OnAdressRecordsChanged));

【讨论】:

这给了我解决我自己的狡猾微妙问题所需的线索。在我的例子中,DependencyProperty 的基础类型是double,但我已经为它分配了一个默认值0int)。将默认值更改为0.0 允许程序正确运行。【参考方案7】:

我遇到了这个问题,这是因为我的启动应用程序构建为任何 CPU,但我引用了一个构建为 x64 的项目。将启动设置为构建 x64 解决了该问题。

【讨论】:

【参考方案8】:

在 VS2015 中,一旦我在工具 -> 选项下的调试选项中打开“仅启用我的代码”,我就能看到导致此问题的特定代码。

【讨论】:

【参考方案9】:

我在与我的应用程序资源有关的另一部分代码中遇到此错误。

在我的App.config 文件中明确设置ResourcePath 文件夹后,此问题已得到修复

【讨论】:

【参考方案10】:

我遇到了同样的问题。我可以通过将 App1.config 的名称重命名为 App.config 来使其工作。我尝试了所有其他方法,但对我来说解决方案是将配置文件的默认名称(对我来说是 App1.config)更改为 App.config。我分享这个是因为有人可能会通过这个小修改获得帮助。

【讨论】:

【参考方案11】:

我的问题是关于界面的。我通过删除位于 C:\ProgramData 的 Betternet 文件夹来修复它。

必须显示隐藏的项目/文件夹才能查看文件夹。

【讨论】:

【参考方案12】:

使用 Visual Studio,它有时不会在异常详细信息中显示任何内容,甚至不会显示任何内容,但运行诊断工具可以轻松查明问题所在。

【讨论】:

【参考方案13】:

尝试在连接字符串中添加“Integrated Security = True”。 它对我有用。

【讨论】:

【参考方案14】:

就我而言,它发生在代码优先的 WPF 项目中。原因是恢复备份后模型更改,错误没有得到适当处理。 “自从数据库创建以来,支持‘MyDataContext’上下文的模型发生了变化。” Update-Database 将其整理出来。

【讨论】:

【参考方案15】:

我不得不将目标 .Net 框架从 4.5.2 更改为 4。

【讨论】:

客户端系统很可能没有安装 .net 4.5.2。【参考方案16】:

我的问题是我自己的代码中的常规 System.IndexOutOfRangeException 错误, 但收到这个奇怪的错误,因为我的代码在里面被调用:

public MainWindow()

    InitializeComponent();
    // my code with error

同样的问题,如果在里面调用它:

private void Window_Initialized(object sender, EventArgs e)

    // my code with error

固定,如果我在里面调用我的代码:

private void Window_Loaded(object sender, RoutedEventArgs e)

    // my code with error

然后我在我的代码中收到了 IndexOutOfRangeException 的正确错误消息。

【讨论】:

以上是关于“在匹配指定绑定约束的类型'TestWPF.MainWindow'上调用构造函数引发异常。” - 如何解决这个问题?的主要内容,如果未能解决你的问题,请参考以下文章