【发布时间】:2013-02-09 15:52:05
【问题描述】:
我有一个小型 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,而测试项目设置为任意 CPU。所以我在配置管理器中为主项目手动添加了Any CPU。但是,老实说,我不知道我是否正确地这样做了,或者即使我应该这样做。所以作为一个额外的问题,有没有办法可以将配置管理器重置为其默认状态?这对主要问题有什么要说的吗?我不知道主项目是否总是设置为 x86,或者我是否以某种方式将其更改为 x86,然后它就坏了。如前所述,这个项目在一段时间内编译得很好。
【问题讨论】:
-
仅供参考,您可以阅读 ProgressTimeSpentUserControl.xaml。你可能想更好地模糊它;)
-
No biggie :) 这只是一个临时文件,我在其中测试一些东西,而其他文件是具有所属视图模型的项目的一部分,所以我的强迫症告诉我将其标记为不相关;)
-
两天前我遇到了一个非常相似的问题 - 我搞砸了配置管理器,试图将所有内容设置为“任何 cpu”而不是 x86,但它停止了构建。我发现我做了两件事——首先我把它留在了发布模式,其次是构建配置管理器,在某些情况下,程序集没有被标记为构建。我的解决方法是遍历所有可用的模式(x86、混合平台和任何 cpu)并设置所有要构建的程序集。这听起来像是当你发现问题所在时你会因为没有想到而责备自己的事情之一!
-
类似问题(有工作答案):stackoverflow.com/questions/28216096/…
-
对于 2018 年 .NET 4.6.1 登陆这里的任何人,我重新启动了 VS,然后重新构建,它开始工作。花费的时间肯定比我想象的要多。
标签: c# .net wpf xaml namespaces