“在匹配指定绑定约束的类型'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】:当我使用默认值指定 DependencyProperty
的 FrameworkPropertyMetadata
时,我得到了它
默认值是
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
,但我已经为它分配了一个默认值0
(int
)。将默认值更改为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'上调用构造函数引发异常。” - 如何解决这个问题?的主要内容,如果未能解决你的问题,请参考以下文章