【问题标题】:How can I add WPF items into a C# class library project in VS2019?如何在 VS2019 中将 WPF 项添加到 C# 类库项目中?
【发布时间】:2020-03-09 04:39:28
【问题描述】:

我在 Visual Studio 2019 中启动了一个类库项目,现在希望将 WPF 项(窗口、用户控件、自定义控件)添加到其中,但“添加项”对话框未在 WPF 部分下列出任何内容.

我在以前版本的 VS 中遇到过这个问题,并通过将 <ProjectTypeGuids> 元素添加到具有相关 WPF GUID 的 csproj 文件中来解决这个问题。但是,这似乎不适用于新的 VS2019 精简后的 csproj 文件,或者我不知道在哪里可以找到正确的 GUID(因为我只尝试过使用之前使用的那些)。

有人知道 VS2019 的正确流程吗?

附:我知道这个问题之前似乎已经回答过(例如No creation of a WPF window in a DLL project),但据我所知,它们都是针对以前版本的 Visual Studio 的,这些建议对我不起作用。

【问题讨论】:

    标签: c# wpf dll .net-core visual-studio-2019


    【解决方案1】:

    对于.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 特定项目添加到项目中。

    【讨论】:

    • 这很好,谢谢!顺便说一句,我还注意到我的目标框架是“netstandard2.0”,这让我开始思考。如果我将“net472”放在目标框架元素中,您的修复也有效,因为我应该使用 .NET Framework 4.7.2。我进一步调查并意识到我最初使用的模板是“类库(.NET Standard)”而不是“类库(.NET Framework)”。使用 .NET Framework 模板创建类库允许我以我原始帖子中提到的方式编辑模板...以防万一,但很高兴知道新的方式!
    • 如果您以 .NET 框架为目标,您不妨使用WPF User Control LibraryWPF Custom Controls Library 模板。
    • 谢谢,是的,虽然我不只是添加 WPF 代码。这是一个包含一些 WPF 的更通用的库 - 可能不是最好的方法,但我对找出好的架构还是很陌生 :( 我认为最初的问题来自我没有意识到有多个 c# 类库模板,对不起
    • 这很好用!我只添加了&lt;UseWPF&gt;true&lt;/UseWPF&gt; 元素,并且无需重新加载项目即可使用正确的菜单项。
    • 我试图只添加 UseWPF 标签,但不知道为什么它不起作用。 Sdk 设置真的很重要!
    猜你喜欢
    • 2020-06-22
    • 1970-01-01
    • 2021-11-13
    • 2023-03-13
    • 2019-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-05
    相关资源
    最近更新 更多