我真的在撞墙。首先,一些背景。该应用程序是使用WPF的PRISM 4 / MVVM应用程序,我的解决方案结构如下:
MyCompany.MyProduct (MyCompany.MyProduct.exe)
+-- Shell.xaml
Shell.xaml.cs
app.config
(etc)
MyCompany.MyProduct.Infrastructure (MyCompany.MyProduct.Infrastructure.dll)
+-- Resources
| +-- MyApplicationStyles.xaml
| SuperCoolImage.png
| (etc)
+-- BaseClasses
+-- ViewModelBase.cs
(etc)
MyCompany.MyProduct.Modules.ModuleA (MyCompany.MyProduct.Modules.ModuleA.dll)
+-- ViewModels
| +-- StuffViewModel.cs
| (etc)
+-- Views
+-- StuffView.xaml
StuffView.xaml.cs
(etc)
项目参考:
MyCompany.MyProduct参考
MyCompany.MyProduct.Infrastructure
MyCompany.MyProduct.Modules.ModuleA
参考资料
MyCompany.MyProduct.Infrastructure
现在,在Shell.xaml和StuffView.xaml中,我都包括一个合并的字典,例如:
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary
Source="pack://application:,,,/MyCompany.MyProduct.Infrastructure;component/Resources/MyApplicationStyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
但是,在两种情况下,我都会首先遇到以下错误:
Could not load file or assembly 'MyCompany.MyProduct.Infrastructure, Culture=neutral' or one of its dependencies. The system cannot find the file specified.
(叹气)我还注意到xaml编辑器在此行向我显示了两个弯曲的错误:
<ResourceDictionary Source="pack://application:,,,/MyCompany.MyProduct.Infrastructure;component/Resources/MyApplicationStyles.xaml"/>
第一个弯曲的错误是...
An error occurred while finding the resource dictionary "pack://application:,,,/MyCompany.MyProduct.Infrastrucuture;component/Resources/MyApplicationStyles.xaml".
第二个(更奇怪的)弯曲错误是...
"Assembly name expected instead of project name."
所以这是我尝试过的:
我对项目引用是否存在进行了三重检查(并且已经删除并重新添加了它们)
我检查了MyCompany.MyProduct.Infrastructure是否成功构建
我仔细检查了程序集是否正确(通过AssemblyInfo.cs)
我一次又一次更改了MyApplicationStyles.xaml上的“生成操作”(当前设置为“页面”)
我已经手动清理了解决方案并进行了重建
我已经重新启动了Visual Studio几次
我已经牺牲了一只山羊(没关系……他是一只非常不友好的山羊)
我没有想法,搜索的机会很少。有任何想法吗?
最佳答案
确保所引用的程序集已针对相同版本的.Net框架进行了编译。