我真的在这里撞墙。首先,一些背景。该应用程序是使用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)
项目参考:
现在,在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."
所以这就是我尝试过的:
我没有想法,搜索的内容很少。有什么想法吗?
答案 0 :(得分:1)
确保编译引用的程序集以针对相同版本的.Net框架。
答案 1 :(得分:0)
我遇到了同样的事情。一个项目的包uri运行良好,而在同一解决方案中的另一个项目中使用的相同uri失败。尼斯!
我使用它的方法是将有问题的资源作为来自包uri中指定的目标程序集的链接文件添加到故障项目的根目录中。将链接文件添加到项目后,包 的包发布消失了。
步骤(VS2012) 1.右键单击项目,然后选择“添加”。然后选择“添加现有”。 2.浏览其他项目中的资源文件。 3.突出显示xaml文件。然后通过“添加”按钮选择箭头。下拉菜单显示“添加为链接”,选择并添加到文件中。
这样,对此链接文件所做的任何更改都会进入所有项目,并通过pack解决这个奇怪的问题。