如何使用.NET Core 3和WPF Desktop Pack以及Visual Studio 2017正确创建WPF应用程序?
是否会在“新建项目”窗口中提供新的项目模板,还是会通过NuGet或其他方式完成?
如何使用.NET Core 3和WPF Desktop Pack以及Visual Studio 2017正确创建WPF应用程序?
是否会在“新建项目”窗口中提供新的项目模板,还是会通过NuGet或其他方式完成?
Brian Lagunas最近在他的网站上发布了一个视频“入门.NET Core 3-创建一个WPF应用程序”,其中提供了创建针对.NET Core 3的新WPF应用程序的详细说明。
以下是简要步骤:
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>
重新加载项目。
构建项目。
如果构建失败并且输出窗口提到了重复的属性,请删除Properties文件夹。
观看视频以获取额外有价值的信息,并请记住,.NET Core 3仍在开发中,这些说明随时可能变得不准确。我会在意识到任何影响此过程的更改时更新答案。
更新2018-12-05:
.NET Core 3 Preview 1于昨天发布,以下是公告中的重点:
Visual Studio 2019将支持构建.NET Core 3应用程序。
Windows桌面框架现在是开源的,第一批源代码已经在GitHub上可用。
您可以从命令行创建WPF和Windows Forms的新.NET Core项目。
dotnet new wpf
您还可以在Visual Studio 2019预览版中打开、启动和调试WPF和Windows Forms项目。目前可以在Visual Studio 2017 15.9中打开.NET Core 3.0项目,但这不是受支持的场景(您需要启用预览版本)。
上面显示的csproj文件格式仍然有效。
dotnet build现在会在构建操作期间将NuGet依赖项从NuGet缓存复制到生成输出文件夹中。在此之前,这些依赖项只作为dotnet publish的一部分进行复制。此更改允许您将生成的输出文件夹复制到不同的计算机上。
更新2019-03-15:
最近发布的Visual Studio 2019 RC具有针对.NET Core平台的WPF和Windows Forms项目模板,使创建新的WPF和Windows Forms .Net Core应用程序非常容易。
更新2019-11-04:
.NET Core 3.0于2019年9月23日发布。
现在完全支持WPF,并且.NET Core WPF App项目模板可以在“创建新项目”对话框中找到。
特别感兴趣的项目属性是PublishReadyToRun、PublishSingleFile和RuntimeIdentifier。
以下是带有所有三个选项的典型PropertyGroup部分:
<PropertyGroup> <OutputType>WinExe</OutputType> <TargetFramework>netcoreapp3.0</TargetFramework> <UseWPF>true</UseWPF> <PublishReadyToRun>true</PublishReadyToRun> <PublishSingleFile>true</PublishSingleFile> <RuntimeIdentifier>win-x64</RuntimeIdentifier> </PropertyGroup>
这些选项将使您的 WPF Core 应用程序成为完全自包含的、64 位的快速启动可执行文件,可在任何位置(包括 USB 驱动器)上运行任何 64 位版本的 Windows(如果需要在 Windows x86 上运行,则只需省略 win-x64 运行时标识符即可)。
对于所有的 Windows 桌面开发人员来说,WPF Core 最棒的一点是彻底消除了过去的“部署烦恼”。你不再需要担心最终用户所运行的操作系统、目标机器上可用的 .NET Framework 版本或用户是否有足够的权限安装你的应用。你可以分发一个单个文件,它将从%LOCALAPPDATA%文件夹或任何用户选择的位置运行,并且一切都会正常工作。
由于生成的可执行文件将包含 .NET Core 本身和所有引用的库,因此这将导致一个相当大的文件,但这是为了从创建一个单个自包含可执行文件中获得的所有好处而支付的小代价。像这样发布时,我的最新应用程序大小为175 MB,但我认为在2020年并不算大。
但是,如果您觉得文件太大了,可以尝试使用一个叫做 Warp 的工具和 PublishTrimmed 属性进行实验,这个工具可以通过分析您的代码并仅包含应用程序中使用的框架部分来减小文件大小。然而,这可能会导致排除一些必需的部分,特别是如果您的代码使用了反射,则可能导致一个无法工作的可执行文件。有一篇很棒的博客文章由Scott Hanselman详细介绍了所有这些内容。