我正在尝试构建一个样式和控件组件,我办公室的其他工程师可以使用它。例如,我有一个从WPFToolKit的DoubleUpDown控件派生的类型(MSpinner)。我也为这个MSpinner控件设置了一组样式。
在测试可执行文件中,我使用技术detailed here来访问资源,我也遵循这些资源来创建资源程序集。
我还在资源库上使用Nujeet上的Costura.Fody程序集嵌入工具,这样我就可以将WPFToolKit程序集嵌入到我的资源库程序集中。
我的资源库程序集构建得很好。 然后我继续使用我的资源库程序集作为新测试WPF可执行文件中的引用。
我的用法如下。
<Window x:Class="UIPart.MainWindow"
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:ignore="http://www.galasoft.ch/ignore"
xmlns:controls="clr-namespace:MyResources.Controls;assembly=MyResources"
mc:Ignorable="d ignore"
Height="300"
Width="300"
Title="MVVM Light Application"
DataContext="{Binding Main, Source={StaticResource Locator}}">
<Window.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Skins/MainSkin.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
<Grid x:Name="LayoutRoot">
<controls:MSpinner/>
</Grid>
</Window>
但是,当我编译可执行文件时,我收到以下错误。
严重级代码描述项目文件行抑制状态 错误未知的构建错误,&#39;无法解析对程序集的依赖性 &#39; Xceed.Wpf.Toolkit,Version = 2.7.0.0,Culture = neutral, 公钥= 3e4669d2f30244f4&#39;因为它还没有预装。 使用ReflectionOnly API时,必须使用相关的程序集 通过预先加载或按需加载 ReflectionOnlyAssemblyResolve事件。 24号线位置 10&#39; UIPart C:\ Users \ heyyouthere \ Documents \ Visual Studio 2015 \ Projects \ ResourceDictionaryExample \ UIPart \ MainWindow.xaml 24
我首先想到的是,Costura.Fody没有正确地完成工作,并没有嵌入WPF.ToolKit程序集,但它实际上是根据结果资源的字节大小库程序集,当执行Costura.Fody的嵌入时确实更大。
然后我想继续并在可执行文件中引用WPFToolKit本身,听起来有点多余,当然,但为什么不呢。所以我从NuGet安装了它,不料,错误消失了,一切正常。
然而,这对我来说不是一个解决方案。需要将这些资源的所有资源和所有依赖项合并到我的资源库中,包括WPFToolkit,以便我认为这是成功的。
我的问题是为什么大会没有解决?有些签名不匹配吗?是否明确在磁盘上查找Xceed.Wpf.Toolkit.dll文件? Aren在我的资源库中嵌入的Xceed.Wpf.Toolkit.dll中定义的类型归功于Fody?