当前位置:  开发笔记 > 编程语言 > 正文

设计时错误查找资源字典 - 项目之间不一致

如何解决《设计时错误查找资源字典-项目之间不一致》经验,为你挑选了0个好方法。

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.

杀死了设计师并重建了项目.

我没有想法,迷失在研究中.我模板的工作解决方案之一,使用了用于创建新的屏幕-这创造了新的屏幕,其成功地显示在设计时.这是关于这些预先存在的屏幕的东西.如何让失败的项目在设计时正确显示样式化资源?

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有