我很困惑。我有一个 WPF 解决方案,其中我将各种视图拆分为单独的项目。我还有一个自定义控件的项目。最后,我的应用程序在另一个项目中,设置为默认项目。
我的主窗口和其他视图之一都使用自定义控件项目中的控件。除了使用自定义控件的第二个视图之外,我的所有项目都成功构建。
我无法在示例应用程序中复制此内容,但我会尽我所能在此处进行说明。
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:
如果我从 MyThirdWindow 中删除 ControlForThirdWindow(和命名空间声明)(但保留项目引用),则整个解决方案都会构建并且应用程序会运行,即使 MyMainWindow 仍然使用 ControlForMainWindow。我已经验证命名空间声明是正确的(我从 MyMainWindow 复制了它)