如何在VS2019中将WPF项添加到C#类库项目中?

8
我在Visual Studio 2019中开始了一个类库项目,并希望将WPF项(窗口、用户控件、自定义控件)添加到其中,但“添加项”对话框下的WPF部分列表为空。
我在以前的VS版本中遇到过这个问题,通过将<ProjectTypeGuids>元素添加到csproj文件中并使用相关的WPF GUIDs解决了它。然而,在新的VS2019削减版csproj文件中似乎不起作用,或者我不知道在哪里找到正确的GUIDs(因为我只尝试使用了以前用过的GUIDs)。
有人知道VS2019应该遵循什么正确的过程吗?
P.S. 我知道这个问题似乎已经被回答过了(例如No creation of a WPF window in a DLL project),但据我所知,它们都是针对以前版本的Visual Studio,而建议对我不起作用。
1个回答

17

对于 .NET Core 项目,在类库项目上右键单击,选择“编辑项目文件”,然后将以下内容复制到 .csproj 文件中:

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">

  <PropertyGroup>
    <TargetFramework>netcoreapp3.0</TargetFramework>
    <UseWPF>true</UseWPF>
  </PropertyGroup>

</Project>

对于 .NET 5 项目,您需要稍微不同的内容:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net5.0-windows</TargetFramework>
    <UseWPF>true</UseWPF>
  </PropertyGroup>

</Project>

这将使您能够使用菜单向项目中添加WPF特定项。


2
这个方法很有效,谢谢!顺便提一下,我还注意到我的目标框架是"netstandard2.0",这让我想起了什么。如果我将"net472"放入目标框架元素中,你的修复方法也可以生效,因为我应该使用.NET Framework 4.7.2。我进一步调查后发现,我最初使用的是“类库(.NET Standard)”模板,而不是“类库(.NET Framework)”模板。使用.NET Framework模板创建类库,可以按照我原始帖子中提到的方式编辑模板...以防对某人有所帮助,但新方法也很好用! - Leoss
1
如果你的目标是.NET Framework,那么最好使用WPF用户控件库WPF自定义控件库模板。 - mm8
谢谢,是的,虽然我不只是添加 WPF 代码。这是一个更通用的库,包括一些 WPF - 可能不是最好的方法,但我对确定良好的架构还是很新的 :( 我认为最初的问题来自于我没有意识到有多个 C# 类库模板,抱歉。 - Leoss
1
这很棒!我只是添加了<UseWPF>true</UseWPF>元素,正确的菜单项可用而无需重新加载项目。 - Xtr
我试图添加UseWPF标签,但是不知道为什么它不起作用。那个Sdk设置确实起到了关键作用! - Matt Gregory

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接