如何使用.NET Core 3和Visual Studio创建WPF应用

Dea*_*uga 5 wpf visual-studio .net-core

使用.NET Core 3和带有Visual Studio 2017的WPF Desktop Pack创建WPF应用程序的正确方法是什么?

在“新建项目”窗口中将有一个新的项目模板,还是通过NuGet或其他方式完成?

Dea*_*uga 8

Brian Lagunas最近在他的网站上发布了.NET Core 3入门–创建WPF应用程序视频,其中提供了有关如何创建针对.NET Core 3的新WPF应用程序的详细说明。

这是它的简称:

  • 安装.NET Core 3和SDK:

https://github.com/dotnet/core-setup

https://github.com/dotnet/core-sdk

  • 创建针对.NET Framework的新WPF应用程序。

  • 卸载项目。

  • 通过删除所有内容并将其替换为以下内容来编辑csproj文件:

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
  <PropertyGroup>
  <OutputType>WinExe</OutputType>
  <TargetFramework>netcoreapp3.0</TargetFramework>
  <UseWPF>true</UseWPF>
  <AssemblyName>MyCore3App</AssemblyName>
  </PropertyGroup>  
</Project>
Run Code Online (Sandbox Code Playgroud)
  • 重新加载项目。

  • 建立专案。

  • 如果构建失败并且您的“输出”窗口提到重复属性,请删除“属性”文件夹。

观看视频以获取更多有价值的信息,并记住.net Core 3仍在开发中,这些说明随时可能变得不准确。当我意识到影响此过程的任何更改时,我将更新答案。

更新2018-12-05

.NET Core 3 Preview 1昨天发布,以下是声明中的重要内容:

  • Visual Studio 2019将成为支持构建.NET Core 3应用程序的版本。

  • Windows桌面框架现已开放源代码,第一批源代码已在GitHub上提供。

  • 您可以从命令行为WPF和Windows窗体创建新的.NET Core项目。

dotnet新的wpf

  • 您还可以在Visual Studio 2019预览版1中打开,启动和调试WPF和Windows窗体项目。当前可以在Visual Studio 2017 15.9中打开.NET Core 3.0项目,但是,这不是受支持的方案(您需要启用预览)。

  • 上面显示的csproj文件格式仍然有效。

  • 现在,dotnet构建在构建操作期间将您的应用程序的NuGet依赖项从NuGet缓存复制到构建输出文件夹。在此版本之前,这些依赖项仅作为dotnet发布的一部分进行复制。此更改使您可以将构建输出xcopy复制到其他计算机。

更新2019-03-15

最近发布的Visual Studio 2019 RC具有针对.NET Core平台的WPF和Windows窗体的项目模板,使创建新的WPF和Windows Forms .Net Core应用程序非常容易。

更新2019-11-04

.NET Core 3.0于2019-09-23发行。

现在已完全支持WPF,并且在“创建新项目”对话框中提供了.NET Core WPF App项目模板。

特别感兴趣的项目属性是PublishReadyToRunPublishSingleFileRuntimeIdentifier

这是具有三个选项的典型PropertyGroup部分的外观:

<PropertyGroup>
  <OutputType>WinExe</OutputType>
  <TargetFramework>netcoreapp3.0</TargetFramework>
  <UseWPF>true</UseWPF>
  <PublishReadyToRun>true</PublishReadyToRun>
  <PublishSingleFile>true</PublishSingleFile>
  <RuntimeIdentifier>win-x64</RuntimeIdentifier>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

这些选项使您可以使WPF Core应用程序成为完全独立的64位快速启动可执行文件,该可执行文件可以在任何64位版本的Windows上运行(如果需要运行,只需省略win-x64运行时标识符即可)在Windows x86上)(包括USB驱动器)。

对于我们所有人Windows桌面开发人员而言,有关WPF Core的最奇妙的事情是,这完全消除了过去的所有“部署难题”。您不再需要担心最终用户正在运行什么操作系统,目标计算机上可以使用什么版本的.NET Framework或用户是否具有足够的权限来安装应用程序。您可以分发一个文件,该文件将从%LOCALAPPDATA%文件夹运行,也可以由用户选择任何位置运行,并且都可以正常运行。

因为生成的可执行文件将包含.NET Core本身和所有引用的库,所以这将导致文件很大,但是用它来创建一个独立的可执行文件所带来的所有好处的代价却很小。当这样发布时,我最近的应用程序为175 MB,我认为2020年根本就不大。

但是,如果确实发现文件过大,可以尝试使用名为Warp和PublishTrimmed属性的工具,该工具可以通过分析代码并仅包括应用程序中使用的部分框架来减小文件大小。但是,这可能会导致排除某些必需的片段,从而导致可执行文件无法正常工作,尤其是在您的代码使用反射的情况下。Scott Hanselman撰写了一篇很棒的博客文章,详细介绍了所有这些内容。