2

由于某些原因,我必须将一些项目(VB.NET 和 C#)转换为 .NET Core。

我已经跟踪了各种来源的信息,从 Convert .Net Core 到 .Net Framework 和 Assembly Portability 预防性地意识到要做的工作。

Visual Studio 2019 Intellisense 转换后不显示任何警报,但 Visual Basic 项目无法编译。

视觉编译器显示命名空间“ Global.Microsoft.VisualBasic.Devices ”和“ Global.Microsoft.VisualBasic.ApplicationServices ”的错误(“未定义类型'Global.Microsoft...' ”)。

对于每个 VB 项目,我都更新了 Microsoft.VisualBasic 包。当前版本现在是 10.3.0。但问题仍然存在。

每个项目都针对 .NET Core 3.1 框架。

可能是什么问题呢?

4

3 回答 3

3

这是我的情况的解决方案:编译成功添加

<VBRuntime>Embed</VBRuntime>

到 .vbproj 文件。stackoverflow.com/a/20005217/3185385

于 2020-07-23T06:16:33.690 回答
1

虽然@michele74c 发布的解决方案有效,但我也能够通过删除来解决这个问题

<MyType>Console</MyType> 

从我的 .vbproj 文件中。

于 2021-02-03T23:45:17.040 回答
0

那是与应用程序框架和命名空间的 VB 特定功能有关的东西My。例如,My.Computer公开该Microsoft.VisualBasic.Devices.Computer类型的一个实例。Microsoft.VisualBasic.ApplicationServices与您可以在项目属性中设置的关闭模式以及您可以Startup在应用程序启动时处理的事件有关。

在尝试从 .NET Framework 迁移到 .NET Core 之前,您基本上需要确保您的应用程序中没有使用这些东西。我从未尝试过,但我认为这意味着禁用应用程序框架并创建自己的Main方法作为入口点,就像在 C# 中一样,并且还将My命名空间的任何使用替换为等效的 .NET Framework 类型和成员,就像您在 C# 中使用的那样。

于 2020-07-04T08:48:20.230 回答