error CS0234:命名空间“Microsoft.VisualBasic”中不存在类型或命名空间名称“Devices”(是否缺少程序集引用?)

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

我正在尝试完成本教程,以使用 C# 制作波浪声音:

https://www.codeguru.com/dotnet/making-sounds-with-waves-using-c/

它让你运行的第一个示例代码是这个,它应该播放一个 .wav 文件:

using Microsoft.VisualBasic;
using Microsoft.VisualBasic.Devices;

namespace MyApp
{
   class Program
   {
      static Audio myAudio = new Audio();

      static void Main()
      {
         myAudio.Play("m:\\crooner2.wav",
            AudioPlayMode.WaitToComplete);
      }

   }
}

在我的代码中,.wav 文件的文件路径和名称被替换为不同的,但代码是相同的。但是,我收到关于第二行代码的错误:

error CS0234: The type or namespace name 'Devices' does not exist in the namespace 'Microsoft.VisualBasic' (are you missing an assembly reference?)

没有 Microsoft.VisualBasic.Devices 调用工作,我什至无法运行教程中的第一个练习,而且绝对无法进一步使用 C# 进行声音处理。

我期待代码运行并播放 .wav 文件。但是,我收到了错误消息。

作为调试的一部分,我在微软网站上看到了这篇文章:

https://learn.microsoft.com/en-us/dotnet/core/compatibility/visualbasic#types-in-microsoftvisualbasicdevices-namespace-not-available

我不知道该怎么做。似乎是说可以通过升级到 .Net 5 或更高版本来解决,但我已经在使用 .Net 5 了。它似乎还说 Microsoft.VisualBasic.Devices 已被 .Net Core 3.0 淘汰,所以我不确定升级如何使使用过时的东西变得更容易。

它还说 Microsoft.VisualBasic.Devices 中的某些功能具有可以通过其他方式调用的等效功能。它为 Microsoft.VisualBasic.Devices.Clock 和 Microsoft.VisualBasic.Devices.Ports 提供了特定的替换调用,但没有为 Microsoft.VisualBasic.Devices.Audio 提供任何替换调用,这是我想在我的代码中使用的。

我已经在 Visual Studio 和 Visual Studio Code 中尝试过这个,并且无论哪种方式都得到相同的错误。

c# .net vb.net
2个回答
0
投票

对于 .NET Core,您通常通过 NuGet 包添加引用。没有用于 Microsoft.VisualBasic.Forms.dll 的 NuGet 包,文档清楚地说明了在其中声明了类型。要获取该程序集引用,我相信您需要在项目文件中替换这一行:

    <TargetFramework>net5.0</TargetFramework>

这些行:

    <TargetFramework>net5.0-windows</TargetFramework>
    <UseWindowsForms>true</UseWindowsForms>

完成之后,您应该会在解决方案资源管理器的

Dependencies
-> Frameworks 下看到Microsoft.WindowsDesktop.App.WindowsForms,相关程序集列在该下。


0
投票

您必须在项目中使用对“Microsoft.VisualBasic”的引用。

你有两种方法可以做到这一点:

第一种方式: 右键单击项目引用,选择“Assemblys”=>“Framework”,您可以搜索(在右上角)“basic”关键字,然后选择“Microsoft.VisualBasic”项。 之后你就可以编译你的项目并且正常工作了!

Screen for add references

第二种方式: 注释或删除“使用 Microsoft.VisualBasic.Devices;”操作说明。 “音频”类应该用红色下划线,用鼠标悬停,你可以通过 IDE 选择“使用 Microsoft.VisualBasic.Devices;”。 引用应自动添加到项目中。

现在你可以编译你的项目了。

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