【发布时间】:2021-07-22 10:50:53
【问题描述】:
之前,在 .NET Framework 中,当我创建 WPF 类库时,我的 App.xaml(设置为 应用程序定义)引用了类似的资源字典:
<Application xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="ResourceDictionary1.xaml" />
<ResourceDictionary Source="ResourceDictionary2.xaml" />
<ResourceDictionary Source="ResourceDictionary3.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
但是,现在使用 .NET 5,我得到了这个编译错误:
库项目文件不能指定 ApplicationDefinition 元素。
所以该消息意味着我不能再在类库中拥有 App.xaml 文件了。但是现在,我不知道如何在类库中全局定义我的资源。如果不引用项目中每个 XAML 文件中的字典,是否有任何方法可以做到这一点?
编辑:这与Source 语法无关。如果我将项目设置为 Windows Application 而不是 Class Library,则路径是正确的并且一切都可以完美编译。
【问题讨论】:
-
类库的.net类型必须与项目类型一致。
-
写下您的项目所针对的平台。
-
@EldHasp 我使用了默认的 .NET 5 WPF 类库模板
<TargetFramework>net5.0-windows</TargetFramework><UseWPF>true</UseWPF>我尝试在 Debug for Any CPU 中进行编译。但问题也出现在 x64 上。 -
我试图以某种方式解决这个问题,但对我没有任何帮助。也许在 Core 中,这确实是不可接受的,需要采用不同的方法。
-
我无法重现该问题。我对 .NET 框架库有同样的错误。
标签: c# wpf .net-5 class-library