私は困惑しています。さまざまなビューを個別のプロジェクトに分割したWPFソリューションがあります。カスタムコントロール用のプロジェクトもあります。最後に、私のアプリケーションは別のプロジェクトにあり、デフォルトのプロジェクトとして設定されています。
メインウィンドウと他のビューの1つは、どちらもカスタムコントロールプロジェクトのコントロールを使用しています。カスタムコントロールを使用する2番目のビューを除いて、すべてのプロジェクトが正常にビルドされます。
サンプルアプリではこれを複製できませんでしたが、ここで説明するために最善を尽くします。
MySolution
MyApp.csproj
References
MyMainWindow
MySecondWindow
MyThirdWindow
MyViewModels
[std WPF references]
App.xaml
App.xaml.cs
MyMainWindow.csproj
References
MyControls
[std WPF references]
MainWindow.xaml
MainWindow.xaml.cs
MySecondWindow.csproj
References
[std WPF references]
SecondWindow.xaml
SecondWindow.xaml.cs
MyThirdWindow.csproj
References
MyControls
[std WPF references]
ThirdWindow.xaml
ThirdWindow.xaml.cs
MyControls
References
[std WPF references]
ControlForMainWindow.xaml
ControlForMainWindow.xaml.cs
ControlForThirdWindow.xaml
ControlForThirdWindow.xaml.cs
この(非常に大雑把な)例では、MyMainWindowプロジェクトとMyThirdWindowプロジェクトは参照が同じです。MyThirdWindowを除くすべてのプロジェクトが正常にビルドされます。私が得るエラーは次のとおりです。
Could not load file or assembly '[MyControls]' or one of its dependencies.
The system cannot find the file specified.
一見同じプロジェクトが失敗するのに、なぜ1つのプロジェクトが構築されるのか誰かが知っていますか?
編集1:
MyThirdWindowからControlForThirdWindow(および名前空間宣言)を削除すると(ただし、プロジェクト参照は残します)、MyMainWindowが引き続きControlForMainWindowを使用していても、ソリューション全体がビルドされ、アプリが実行されます。名前空間宣言が正しいことを確認しました(MyMainWindowからコピーしました)