【问题标题】:Convert a .NET Framework VB project to .NET Core将 .NET Framework VB 项目转换为 .NET Core
【发布时间】:2020-07-04 08:07:46
【问题描述】:

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

我关注了各种来源的信息,来自 Convert .Net Core to .Net Framework 和 Assembly Portability 预防性地意识到要做的工作。

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

Visual Compiler 显示命名空间的错误 “Global.Microsoft.VisualBasic.Devices”和“Global.Microsoft.VisualBasic.ApplicationServices”(“类型 'Global.Microsoft...' 未定义”)。

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

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

可能是什么问题?

【问题讨论】:

    标签: .net vb.net .net-core vbc


    【解决方案1】:

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

    <VBRuntime>Embed</VBRuntime>
    

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

    【讨论】:

    • 只需将其添加为文件.vbproj中第一个属性组中的最后一项
    【解决方案2】:

    虽然@michele74c 发布的解决方案有效,但我也可以通过删除解决此问题

    <MyType>Console</MyType> 
    

    来自我的 .vbproj 文件。

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • 所以,My.Settings 也应该被替换?
      • 在 C# 中你使用Properties.Settings.Default 而不是My.Settings 所以也许你需要做同样的事情。不过不太确定。
      • 很难尝试,但必须这样做。谢谢。
      • My.Settings 和 My.Resources 应该没问题,因为它们是直接在您的 VB 项目中定义的。其他 My.XY 类型是有问题的。这是因为它们是在完整的 .NET 中的 VB 运行时 Microsoft.VisualBasic.dll 中定义的。但是在 .NET Core 实现中,有些是缺失的,见docs.microsoft.com/en-us/dotnet/core/compatibility/visualbasic
      • 在我之前的评论之后。 VB 运行时的重大更改:vbNewLine 已过时,Microsoft.VisualBasic.ApplicationServices 命名空间中的类型不可用(例如 My.Application),Microsoft.VisualBasic.Devices 命名空间中的类型不可用(例如 My.Computer),Microsoft.VisualBasic 中的类型.MyServices 命名空间不可用
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-08
      • 2019-10-22
      相关资源
      最近更新 更多