Cha*_*les 10 c# winforms .net-core
我正在尝试创建一个引用 .net core 3 版本的 winform 的 .net core 3 类库(因此该程序集本身可以被 .net core 3 WinForm 程序集引用)。
一个新的 .net 核心 WinForm 项目引用了 Microsoft.WindowsDesktop.App.WindowsForms,但是我找不到任何具有该名称的 nuget 包。
我需要做什么来引用 .net core 3 winform?
Rez*_*aei 18
更新:在 VS 2019 的更高版本中(我尝试了 16.8.2 版),有一个适用于 .NET Core 的Windows 窗体控件库的项目模板。
目前Windows Forms .NET Core处于预览模式,我不知道 VS 2019 16.2.2 中 .NET Core 中 Windows Forms Control Library 的任何官方 Nuget 包或项目模板。
但是要创建Windows 窗体控件库,您可以使用以下说明:
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop"><UseWindowsForms>true</UseWindowsForms>.现在项目文件应该如下所示:
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<OutputType>Library</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
现在,您可以将类似Form或 的Windows 窗体元素添加UserControl到此项目中,并且可以毫无问题地构建项目。
目前接受的答案似乎有些过时了。最近的语法要求在 TargetFramework 标签中指定目标,而不是在 Sdk 标签中:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Library</OutputType>
<TargetFramework>net5.0-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
更多信息请点击此处
我有一个核心 3.1 Web 应用程序,指的是一个依赖于 System.Windows.Forms 的 Framework 4.5.2 项目。我的解决方法是将以下行添加到 Web 应用程序 csproj 文件中:
FrameworkReference Include="Microsoft.WindowsDesktop.App.WindowsForms"
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFrameworks>netcoreapp3.1</TargetFrameworks>
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
<ItemGroup>
<FrameworkReference Include="Microsoft.WindowsDesktop.App.WindowsForms" />
</ItemGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)