簡體   English   中英

將 .NET 框架 VB 項目轉換為 .NET 核心

[英]Convert a .NET Framework VB project to .NET Core

由於某些原因,我必須將一些項目(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 package。 當前版本現在是 10.3.0。 但問題仍然存在。

每個項目都針對 .NET Core 3.1 框架。

可能是什么問題呢?

這是我的情況的解決方案:編譯成功添加

<VBRuntime>Embed</VBRuntime>

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

雖然@michele74c 發布的解決方案有效,但我也能夠通過刪除來解決這個問題

<MyType>Console</MyType> 

來自 my.vbproj 文件。

那是與應用程序框架和My命名空間的 VB 特定功能有關的東西。 例如, My.Computer公開了Microsoft.VisualBasic.Devices.Computer類型的實例。 Microsoft.VisualBasic.ApplicationServices與您可以在項目屬性中設置的關閉模式和您可以處理以在應用程序啟動時采取行動的Startup事件等內容相關。

在嘗試從 .NET 框架遷移到 .NET 核心之前,您基本上需要確保您的應用程序中沒有使用這些東西。 我從未嘗試過,但我認為這意味着禁用應用程序框架並創建自己的Main方法作為入口點,就像在 C# 中一樣,並且還將My命名空間的任何使用替換為等效的 .NET 框架類型和成員,就像您在 C# 中使用的那樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM