以前は問題なくコンパイルできた小さな 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}">
そして、ここに私が得るエラーがあります:
これはスクリーンショットの 1 つのファイルだけでなく、このプロジェクトのすべてのユーザー コントロール/ウィンドウ ファイルの xaml で同様の方法で追加したすべての参照であることに注意してください。
したがって、ファイルはそこにあり、ファイルの名前空間は正しく、xaml ファイルの名前空間/クラス名は (私の理解では) 正しいです。xamlを入力するとインテリセンスが得られるため、ファイルは正常に検出されますが、コンパイル時には検出されません。
他の投稿でこれに対する最も一般的な解決策は、.net フレームワーク バージョンです。現在、メイン プロジェクトとテスト プロジェクトの両方で .Net Framework 4 に設定されています。クライアント プロファイルではなくフル バージョン。
これが私が台無しにしたと思うものです: 構成マネージャーでは、両方のプロジェクトでプラットフォームが Any CPU に設定されていますが、これを解決しようとしたある時点で、メイン プロジェクトが x86 に設定され、テスト プロジェクトが Any に設定されていることに気付きました。 CPU。そのため、構成マネージャーのメイン プロジェクトに任意の CPU を手動で追加しました。しかし、正直なところ、これを正しく行ったかどうか、または行うべきかどうかさえわかりません。追加の質問として、構成マネージャーをデフォルトの状態にリセットする方法はありますか? これは主な問題について何か言いたいことがありますか? メイン プロジェクトが常に x86 に設定されていたのか、それとも何らかの方法で x86 に変更した後に壊れたのかはわかりません。前述のように、このプロジェクトはしばらくの間問題なくコンパイルされていました。