TLDR;
屏幕ResourceDictionary
在运行时正确地引用VS2015样式的外部文件,但不是在设计时.是什么赋予了?
在工作中,我们有一个WinForms产品,其中包含许多 WinForms屏幕,一个开发人员主动添加新的屏幕,以及一些WPF屏幕,我添加了新的.在现有的WPF屏幕中注意到很多重复的代码/样式,我创建了一个单独的项目来容纳这个 - 由所有现有/未来的WPF屏幕引用.
项目: WpfHelper
平台目标:任何CPU
目标框架:.NET Framework 4.6
WpfHelper.dll
部署到 ...\Trunk\Project\Externals
...\Trunk\Utilities\WpfHelper\WpfHelper\Resources\GlobalResources.xaml
构建行动:页面
ResourceDictionary包含通用样式
我已...\Trunk\Project\Externals\WpfHelper.dll
在六个项目中引用,将以下代码添加到每个资源文件中:
所有屏幕都位于...\Trunk\Project\Plugins
.
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ? ? Resource Works? ? Platform Target ? Target Framework ? Reference File Path ? ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ? Project1 ? Succeeded ? Any CPU ? .NET 4.6 ? ...\Project1\Project1\Resources\Resources.xaml ? ? Project2 ? Succeeded ? x86 ? .NET 4.6 ? ...\Project2\Project2\Resources\Resources.xaml ? ? Project3 ? Succeeded ? Any CPU ? .NET 4.6 ? ...\Project3\Project3\Resources\Resources.xaml ? ? Project4 ? Failed ? x86 ? .NET 4.6 ? ...\Project4\Project4\Resources\Resources.xaml ? ? Project5 ? Failed ? x86 ? .NET 4.6 ? ...\Project5\Project5\Resources\Resources.xaml ? ? Project6 ? Failed ? Any CPU ? .NET 4.6 ? ...\Project6\Project6\Resources\Resources.xaml ? ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
近期变动
就在最近,我将Visual Studios 2013升级到2015年.大约在同一时间,另一个屏幕开发人员将所有现有的屏幕项目的目标框架从.NET Framework 3.5/4.0升级到.NET Framework 4.6.
成功的项目
我WpfHelper.dll
在最近的变化之前引用过.
样式在设计时和运行时正确应用.
项目失败
我WpfHelper.dll
在最近的变化后引用了.
样式仅在运行时正确应用.
在设计期间,抛出错误:
查找资源字典"pack:// application ,,,/WpfHelper; component/Resources/GlobalResources.xaml"时发生错误.
使用本地的地方Resources.xaml
,抛出后续错误:
值不能为空.参数名称:item
我尝试过的:
阅读了大量文章和问答后:
设计时WPF XAML资源字典
如何在WPF中的设计时加载ResourceDictionary
在单独的程序集中查找资源字典出错
在.NET 4.0中加载合并资源字典时出现问题
在Windows Presentation Foundation中打包URI
VS2013:查找资源字典时发生错误
查找资源字典时发生错误
在另一个程序集中查找合并资源字典时出错
无法引用包含合并字典的资源字典
WPF VS2013:查找资源字典时发生错误
应用程序正常运行但在设计时出现"错误":"名称空间中不存在"和"查找资源字典时出错"
资源字典作为链接文件
Visual Studio 2015 XAML资源字典错误
我尝试了以下所有方面无济于事:
将项目平台目标更改为"任何CPU"
将项目目标框架从/向.NET Framework 4.6更改
确保所有Resource.xaml文件具有相同的Build Action(Page)等.
检查每个项目的AssemblyInfo.cs
文件.失败的项目包括(并删除)以下内容:
[assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)]
手动清除AppsData,Cleaned和Rebuilt项目中的临时文件夹.
重新开放项目.
重新启动.
右键单击WpfHelper.dll
工作项目中复制的引用,并粘贴到失败项目的引用中.
将已添加的WpfHelper.Resources.GlobalResources.xaml
链接文件添加到失败的项目中.
每个同事都耿耿于怀.
添加了用于的子词典的完整包URI GlobalResources.xaml
.
杀死了设计师并重建了项目.
我没有想法,迷失在研究中.我模板的工作解决方案之一,使用了用于创建新的屏幕-这创造了新的屏幕,其成功地显示在设计时.这是关于这些预先存在的屏幕的东西.如何让失败的项目在设计时正确显示样式化资源?