我正在尝试创建一个.net核心3类库,它引用了winform的.net核心3版本(因此这个程序集本身可以被.net核心3 WinForm程序集引用)。
一个新的.net核心WinForm项目引用了Microsoft.WindowsDesktop.App.WindowsForms,但是我找不到任何这个名称的nuget包。
我需要做什么来引用.net核心3 winform?
发布于 2019-08-15 16:25:36
更新:在VS 2019的以后版本中(我尝试了16.8.2版),有一个用于.NET核心的项目模板。
目前Windows窗体.NET核心处于预览模式,我不知道任何官方的Nuget软件包或.NET内核中的的项目模板,在VS 201916.2.2中。
但是要创建Windows窗体控件库,可以使用以下说明:
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop"><UseWindowsForms>true</UseWindowsForms>将windows窗体指定为UI技术。现在,项目文件应该如下所示:
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<OutputType>Library</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
</Project>现在,您可以将Windows元素(如Form或UserControl )添加到此项目中,并在没有任何问题的情况下构建项目。
发布于 2020-08-11 00:15:04
我有一个核心3.1Web应用程序,它引用了一个框架4.5.2项目,该项目依赖于System.Windows.Forms。我的修正是将下面的行添加到web应用程序csproj文件中:
Include="Microsoft.WindowsDesktop.App.WindowsForms" FrameworkReference
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFrameworks>netcoreapp3.1</TargetFrameworks>
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
<ItemGroup>
<FrameworkReference Include="Microsoft.WindowsDesktop.App.WindowsForms" />
</ItemGroup>
</Project>发布于 2021-03-02 11:18:45
目前接受的答案似乎有些过时。最近的语法要求目标在TargetFramework标记中指定,而不是在Sdk标记中指定:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Library</OutputType>
<TargetFramework>net5.0-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>
</Project>这里有更多的信息
https://stackoverflow.com/questions/57509951
复制相似问题