在基于.net8的项目中使用.net4.8项目

问题描述 投票:0回答:2

我使用 .NET 4.8 开发了一个 Windows 窗体应用程序,它与 .NET 4.8 中提供的所有必需组件一起运行良好。

现在,我有一个新的要求,要在两台计算机之间启用基于互联网的通信。具体来说,我想更改一台计算机 (PC1) 上的变量,并在另一台计算机 (PC2) 上更新相同的变量。我愿意通过 API 实现此功能。

但是,我面临着不同 .NET 版本的兼容性问题。我想将我的 Windows 窗体项目合并到使用 .NET 8.0 的 ASP.NET Core 项目中。

不幸的是,当我在 .NET 8.0 项目中添加 Windows 窗体项目作为引用(依赖项 > 添加项目引用)时,我在运行 .NET 8.0 项目时遇到了困难。是否可以在一个解决方案中拥有两个具有不同 .NET 版本的项目?

例如,在我的第二个项目(使用.NET的在线通信应用程序)中,我编写了以下代码:

using WindowsFormsApplication4;
Form1 form1Instance = new Form1();
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();

app.MapGet("/", () =>
{
    string vari1 = 
    form1Instance.ReferenceNumericUpDownValue.ToString();
    return vari1;
});

app.Run();

运行应用程序时出现的错误:

System.BadImageFormatException:“无法加载文件或程序集”C:\Users\drive3\source 埃珀斯 表情2 emote2 在\调试 et8.0\WindowsFormsApplication4.exe'。可执行文件 (.exe) 或库 (.dll) 的格式无效。'

c# asp.net .net web-to-winforms
2个回答
0
投票

无需将其添加为参考,只需使用 ASP.NET 作为单独的项目并通过 API 发送请求并获取响应


0
投票

我认为您可以采取多种方法。 1- 正如您可能知道的,API 需要 Web 服务器(例如 Kestrel 或 IIS)才能运行,因此您不能仅在 winform 应用程序中构建和运行 API 方法。您可以在单独的 ASP.NET API 项目中与面向“.net standard 2.0”的库一起实现 API(您不能将 .net 框架与 .net 8 一起使用)。 2-您可以使用共享数据库在两台计算机之间传递值(如果它们位于同一本地网络中)。 3-您可以使用实时工具,例如signalR来传递数据。

© www.soinside.com 2019 - 2024. All rights reserved.