【发布时间】:2020-06-17 23:06:01
【问题描述】:
我拥有面向 .NET Framework 4.8 的“实用程序”类库的源代码。我想将其移植到 .NET Core 桌面客户端应用程序中,并将其移植到 .NET Core Web 服务中。
我知道新的.NET Core 项目有一种被描述为 SDK 风格的新项目文件。似乎可以验证 VS 是否使用新样式,因为项目文件的第一行提到了“sdk”一词,并且 Visual Studio 右键单击项目允许编辑项目文件。 try-convert conversion tool 被描述为不完整且不受支持,因此我将源代码文件粘贴到项目中。
当我将源代码粘贴到 Class Library (.NET Core) 项目中时,它无法针对缺少的程序集进行编译。似乎无法添加对 PresentationFramework.dll 中的 System.Windows.Documents.FlowDocument 等 Microsoft 类的引用。我只能添加 COM 引用(不是我想要的)或项目引用(换句话说,“自制”,不是微软,不是我想要的)。
当我将源代码粘贴到 WPF Library (.NET Core) 项目中时,它会编译。这个库没有 WPF 功能,因为它充满了实用程序类和实用程序方法,所以这种项目类型似乎是一个奇怪的选择。我只是猜测它可能会起作用,因为 tutorial 提到手动编辑 WPF 应用程序和 Windows 窗体应用程序的项目文件。它不会告诉您任何非应用程序的替代品。换句话说,本教程没有提到库。
编辑:以下问题被编辑为比原始问题“不那么广泛”。
为什么WPF Library (.NET Core) 成功而Class Library (.NET Core) 失败?
详情:Visual Studio 2019 社区
解决方案:“类库”在面向 .NET Framework 4.8 时有效,但现在在面向 .NET Core 时必须选择“WPF 库”。正如@DavidAWhite 所说,FlowDocument 是 WPF 的一部分。
【问题讨论】:
-
通过一些调整,很多端口都可以工作,但是如果您使用已折旧的 3rd 方库或其他库,那么这可能会成为一个问题,但是即使这样,也可以通过一些调整来获得它们“有时”工作。但是,这个问题太宽泛了
-
@TheGeneral ,它没有被弃用,也没有被第 3 方。如果我想创建一个 .DLL,自然的选择是“类库”,所以这值得解释。
标签: c# wpf visual-studio