【发布时间】:2020-06-09 09:25:23
【问题描述】:
有没有办法从 .net 核心控制台应用程序访问 System.Printing 命名空间。我看到它可用于 .net 核心 WPF 应用程序。文档中没有任何内容指定它仅适用于 WPF。
我一直在寻找 System.Printing NuGet 包,但没有成功
我在 Windows 10 上使用 C# .NET Core 3.1
【问题讨论】:
-
有点。如果您将项目文件设置为使用 WPF(
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">、<UseWpf>true</UseWpf>)但将<OutputType>保留在Exe,您将拥有一个带有Main的控制台应用程序,它可以做任何它喜欢的事情——在特别是,它实际上不需要提供任何 WPF GUI。我说“有点”是因为此应用程序当然仍会绑定到 Windows,可能不支持此设置,并且如果您需要引入其他非 WPF 代码,它可能会以意想不到的方式失败。警告讲师。 -
它有着曲折的历史。最初在 .NET 2.0 中完成,但他们决定不包含它,因为它不够好。但是 WPF 依赖于它,所以他们别无选择,只能在 3.0 中发布它。所以你确实需要创建一个 WPF 项目来获取它,你不必创建任何 UI。小心麻烦,它真的不足以管理打印队列。
-
取决于你需要什么,并假设一个 windows 目标.. 你也可以 PInvoke 到终点线。网上有不错的用于 win32 打印的 PInvoke 包装器。请注意.. 如果这是一条简单的路线,那么它已经完成并且是核心框架的一部分。