代码之家  ›  专栏  ›  技术社区  ›  Dean Kuga

如何使用.NET Core 3和VS 2017创建WPF应用程序

  •  2
  • Dean Kuga  · 技术社区  · 7 年前

    在新的项目窗口中会有一个新的项目模板,还是通过NuGet或其他方式来实现?

    2 回复  |  直到 6 年前
        1
  •  14
  •   Dean Kuga    6 年前

    Brian Lagunas 最近发布 Getting Started with .NET Core 3 – Create a WPF Application 他的网站上的视频,提供了如何创建一个新的WPF应用程序瞄准.netcore3的详细说明。

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

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

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

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

    • 生成项目。

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

    更新2018-12-05

    .NET Core 3 Preview 1 was released yesterday ,以下是公告中的重要内容:

    • VisualStudio2019将是支持构建.NET核心3应用程序的版本。

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

    dotnet新wpf

    • 您还可以在VisualStudio2019 Preview 1中打开、启动和调试WPF和Windows窗体项目。目前可以在Visual Studio 2017 15.9中打开.NET Core 3.0项目,但是不支持这种情况(需要启用预览)。

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

    • dotnet build现在在生成操作期间将应用程序的NuGet依赖项从NuGet缓存复制到生成输出文件夹。在此版本之前,这些依赖项仅作为dotnet publish的一部分复制。此更改允许您将构建输出复制到不同的计算机。

    更新2019-03-15 :

    最近发布的VisualStudio2019RC有一个针对.NET核心平台的WPF和Windows窗体的项目模板,可以非常轻松地创建新的WPF和Windows窗体.NET核心应用程序。

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

    WPF现在完全受支持,.NET核心WPF应用程序项目模板在“创建新项目”对话框中可用。

    特别关注的项目财产包括 , 发布单个文件 ,和

    这就是TypicCall PropertyGroup部分在所有三个选项中的外观:

    <PropertyGroup>
      <OutputType>WinExe</OutputType>
      <TargetFramework>netcoreapp3.0</TargetFramework>
      <UseWPF>true</UseWPF>
      <PublishReadyToRun>true</PublishReadyToRun>
      <PublishSingleFile>true</PublishSingleFile>
      <RuntimeIdentifier>win-x64</RuntimeIdentifier>
    </PropertyGroup>
    

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

    对于我们所有Windows桌面开发人员来说,wpfcore最奇妙的一点是,它完全消除了过去所有的“部署蓝调”。您不必再担心最终用户正在运行什么操作系统,目标计算机上有什么版本的.NET framework,或者用户是否有足够的权限安装您的应用程序。您可以分发一个文件,该文件将从%LOCALAPPDATA%文件夹或用户选择的任何位置运行,并且一切正常。

    Warp 能够 但是,这会导致排除一些必需的部分,从而导致无法执行的可执行文件,特别是在代码使用反射的情况下。有一个伟大的 blog post 通过 Scott Hanselman 把这些都详细地讲了一遍。