我有一个小型 WPF 应用程序,它过去编译得很好,但现在不再编译了。我真的不能说它在什么时候停止了构建。前一天还好好的,第二天就不行了。
这是项目结构:
除了标准的 .net dll 之外,没有其他项目或外部参考。
这是问题所在的用户控件:
<UserControl x:Class="TimeRecorder.HistoryUserControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:TimeRecorder.ViewModel"
xmlns:framework="clr-namespace:TimeRecorder.Framework"
mc:Ignorable="d" Height="Auto" Width="Auto" Padding="5">
<UserControl.Resources>
<local:HistoryViewModel x:Key="ViewModel"/>
<framework:BoolToColorConverter x:Key="ColorConverter"/>
</UserControl.Resources>
<StackPanel DataContext="{StaticResource ViewModel}">
这是我得到的错误:
请注意,这不仅仅是屏幕截图中的一个文件,而是我在此项目的所有用户控件/窗口文件中以类似方式在 xaml 中添加的所有引用。
所以文件在那里,文件中的命名空间是正确的,xaml 文件中的命名空间/类名(据我所知)是正确的。当我输入 xaml 时,我得到了智能感知,因此它发现文件正常,但在编译时却没有。
在其他帖子中,最常见的解决方案是 .net 框架版本。我的主项目和测试项目目前都设置为 .Net Framework 4。完整版不是客户资料。
这就是我认为我搞砸了: 在配置管理器中,两个项目的平台都设置为任何 CPU,但是在尝试解决这个问题时,我注意到主项目设置为 x86,测试项目设置为任何中央处理器。所以我在配置管理器中为主项目手动添加了Any CPU。但是,老实说,我不知道我是否正确地这样做了,或者即使我应该这样做。所以作为一个额外的问题,有没有办法可以将配置管理器重置为其默认状态?这对主要问题有什么要说的吗?我不知道主项目是否总是设置为 x86,或者我是否以某种方式将其更改为 x86,然后它就坏了。如前所述,这个项目在一段时间内编译得很好。