Global.Micrsoft.VisualBasic.ApplicationsServices... 未定义错误 BC30002

Bil*_*all 6 vb.net legacy-code .net-5

我正在将一些旧的旧版 VB 应用程序从 .NET 框架转换为 .NET 5,并且已经解决了大部分问题,但是,我迷失了这些:

Error   BC30002 Type 'Global.Microsoft.VisualBasic.ApplicationServices.ApplicationBase' is not defined.
Error   BC30002 Type 'Global.Microsoft.VisualBasic.ApplicationServices.User' is not defined.
Error   BC30002 Type 'Global.Microsoft.VisualBasic.Devices.Computer' is not defined.
Error   BC30002 Type 'Global.Microsoft.VisualBasic.MyServices.Internal.ContextValue' is not defined.
Run Code Online (Sandbox Code Playgroud)

VisualBasic 10.3.0 包包含在项目中。

任何提示表示赞赏。

谢谢,比尔

Jan*_*Jan 16

我今天遇到了同样的问题,试图使用 Microsoft 的升级助手将 .net 框架(4.6,但我猜它通常适用于 4.x)更新到 .net 5。

我在 github 上的错误报告中找到了解决方案:

简而言之,将以下内容添加到新创建的中.vbproj-file:

<PropertyGroup>
  <MyType>Empty</MyType>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

.vbproj-file放置在结束标记之前的末尾</Project>。

  • 请注意您没有其他 &lt;MyType&gt; 标记。我有 &lt;MyType&gt;Windows&lt;/MyType&gt;。您只需从“Windows”更新为“Empty”即可。 (4认同)

小智 5

我注意到,到目前为止提供的答案仅提供了此问题的解决方法,而不是解决其根本原因。如果您在BC30002将旧版VB项目升级到.NetCore/.Net框架时遇到错误,我建议在.NetCore/.Net框架<UseWindowsForms>true</UseWindowsForms>中添加<PropertyGroup>,如下所示:

  <PropertyGroup>
    <TargetFramework>net6.0-windows</TargetFramework>
    <Platforms>x64</Platforms>
    <UseWindowsForms>true</UseWindowsForms>
    <MyType>Windows</MyType>
  </PropertyGroup>
Run Code Online (Sandbox Code Playgroud)