这显然是一个受欢迎的问题,但我没有找到任何与我的问题密切相关或解决问题的解决方案。
这是一个带有两个项目的C#WPF程序 - 一个用于UI,另一个用于后端。
发生了XmlParseException:'在类型'Sundial.UI.MainWindow'上调用与指定绑定约束匹配的构造函数引发异常。行号'4'和行位置'9'。
检查InnerException,我得到“调用线程必须是STA,因为许多UI组件都需要这个。”
以下是我的MainWindow中的那部分:
<Window x:Class="Sundial.UI.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Views="clr-namespace:Sundial.UI.Views"
Title="Sundial"
MinWidth="550" MinHeight="400"
Width="1100" Height="700">
<Grid>
<Views:SundialControl/>
</Grid>
</Window>
错误令我感到困惑,因为自上次成功运行以来我没有添加任何新内容。只有在我开始尝试更改解决方案中项目的名称后才会弹出。我也没有编写多线程程序(至少据我所知)。
答案 0 :(得分:0)
我想出的事情:
1)这不是一个好的答案,但我最后做的第一件事是从头开始重建程序,启动一个新的解决方案,创建项目(使用我们正在使用的新名称)并复制相关的代码重新进入。这很痛苦,但新版本现在有效。
2)当我从原始设置复制设置时,我注意到前端项目的属性窗口中的程序集名称和默认命名空间与项目名称不匹配。在预感中,我将其更改为匹配,原版现在也可以再次使用。我最初跳过这些因为我怀疑更改它们可能会更改生成的.exe文件的名称(我想保留)。不幸的是,.exe名称必须改变。
我也从未在我的Visual Studio版本中找到调用堆栈窗口。它被列为大多数地方正在调试 - &gt;窗口,但我只在那里显示断点,输出和立即。