c# - 从另一个程序集加载转换器:“在 'System.Windows.StaticResourceExtension' 上提供值引发异常。”
问题描述
我知道对此有几个答案,但它们不包括我的具体情况!请在关闭问题之前检查。
- 其他答案:
- 在定义之前使用的资源(不是我的情况)
- 另一个,同上
- 使用 x86 架构(不适用于引用的程序集,无法更改主程序集)
- 我的问题:从另一个程序集加载资源失败,但如果从主项目程序集加载,则工作正常
我有一个引用Utils.WPF
项目(也是 DLL)的 DLL 项目。引用的项目应该有许多 WPF 对象,例如转换器、命令等。
如果我尝试使用 Utils.WPF 程序集中的转换器,我会在运行时收到此异常:
引发异常:PresentationFramework.dll 中的“System.Windows.Markup.XamlParseException”附加信息:“在“System.Windows.StaticResourceExtension”上提供值引发异常。” 行号“22”和行位置“18”。发生了
第 22 行是我使用转换器的地方:
<Window x:Class="MainNameSpace.WpfSelectODAttributes"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:MainNameSpace"
xmlns:wpf="clr-namespace:Utils.WPF;assembly=Utils.WPF"
mc:Ignorable="d"
Title="Selecione os atributos desejados:" Height="450" Width="400">
<Window.Resources>
<wpf:BoolVisibilityCollapseConverter x:Key="BoolToVisible"/>
</Window.Resources>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="Auto"/>
</Grid.ColumnDefinitions>
<ListBox ItemsSource="{Binding Items}"
Visibility="{Binding HasItems, Converter={StaticResource BoolToVisible}}"
Grid.Column="0" Margin="10">
.............
但是,如果我使用完全相同的代码,但在主项目中声明转换器(在内部,在声明资源时在 xml 中MainNameSpace
更改),则程序运行良好。wpf:
local:
我尝试将Utils.WPF
代码编译为AnyCPU
,x64
但x86
没有成功。PS:主要项目是项目必须是x64
。
有什么我可能会丢失的解决方案吗?
解决方案
推荐阅读
- python - 熊猫按特定日期重新采样
- flutter - 为什么颤振项目文件在驱动器中占用这么多空间?
- reactjs - Graphql订阅无法从反应本地主机客户端工作
- r - 如何更改我的 x 轴刻度的文本?
- php - 将数据库连接传递给 PHP 函数
- html - CSS:使文本在图像宽度处中断
- flutter - 当我运行(F5)Flutter Web 应用程序(我使用 VScode)时,chrome 上出现空白屏幕
- typescript - 使用没有 DOM 类型的 TypeScript(对于节点)
- c++ - 如何为 pcl::BoxClipper3D 设置输入云
- python - 如果表有多个类,如何单击,这是 gmail 搜索部分,我已附上截图,请检查