以前は問題なくコンパイルされていた小さなWPFアプリケーションがありますが、現在はそうではありません。どの時点で構築が停止したかは、はっきりとは言えません。ある日はうまくいきましたが、次の日はうまくいきませんでした。
プロジェクトの構造は次のとおりです。
標準の.netdll以外に、他のプロジェクトや外部参照はありません。
問題が発生したユーザーコントロールは次のとおりです。
<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 Framework4に設定されています。クライアントプロファイルではなく、フルバージョン。
これが私が台無しにしたと思うものです: 構成マネージャーでは、両方のプロジェクトのプラットフォームが任意のCPUに設定されていますが、これを解決しようとしたときに、メインプロジェクトがx86に設定され、テストプロジェクトが任意に設定されていることに気付きましたCPU。そこで、構成マネージャーのメインプロジェクトに任意のCPUを手動で追加しました。しかし、正直なところ、これを正しく行ったかどうか、あるいは行うべきかどうかはわかりません。それで、追加の質問として、構成マネージャーをデフォルトの状態にリセットする方法はありますか?これは主な問題について何か言いたいことがありますか?メインプロジェクトが常にx86に設定されているかどうか、または何らかの理由でx86に変更してから壊れたのかどうかはわかりません。前述のように、このプロジェクトはしばらくの間問題なくコンパイルされていました。