You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用C#播放WAV文件遇CS0234错误:Microsoft.VisualBasic.Devices不存在

解决Microsoft.VisualBasic.Devices.Audio引用错误及音频播放替代方案

问题根源

你遇到的CS0234错误,本质是因为在.NET 5+项目中默认没有引用Microsoft.VisualBasic程序集,而且即便手动引用,Microsoft.VisualBasic.Devices.Audio类在.NET Core/.NET 5+环境下存在兼容性缺陷——官方文档提到的升级到.NET 5+仅恢复了该命名空间下的Clock和Ports类,Audio类并未被纳入恢复范围,所以原教程的代码无法直接运行。

临时解决:继续使用原代码结构

如果想沿用教程的代码逻辑,需要手动添加Microsoft.VisualBasic程序集引用:

  • Visual Studio操作:右键项目 → 管理NuGet程序包 → 搜索Microsoft.VisualBasic并安装;或者右键项目 → 添加 → 引用 → 勾选Microsoft.VisualBasic。
  • VS Code/.NET CLI操作:在项目的.csproj文件中添加以下配置,然后执行dotnet restore:
<PackageReference Include="Microsoft.VisualBasic" Version="10.3.0" />

注意:这种方式仅在Windows平台有效,跨平台场景下可能出现播放失败的问题。

推荐替代方案:使用原生或专业音频库

方案1:.NET原生System.Media.SoundPlayer

适合简单的WAV文件播放,无需额外依赖,跨平台支持较好:

using System.Media;

namespace MyApp
{
    class Program
    {
        static void Main()
        {
            // 使用using确保资源正确释放
            using (var soundPlayer = new SoundPlayer(@"m:\crooner2.wav"))
            {
                // PlaySync对应原代码的WaitToComplete模式,同步播放直到结束
                soundPlayer.PlaySync();
            }
        }
    }
}

方案2:专业音频库NAudio

如果后续需要更复杂的音频处理(比如非WAV格式、音频编辑、实时播放控制等),推荐使用NAudio:

  1. 安装NAudio包:执行dotnet add package NAudio(或在Visual Studio的NuGet包管理器中搜索安装)
  2. 示例代码(播放WAV文件):
using NAudio.Wave;

namespace MyApp
{
    class Program
    {
        static void Main()
        {
            using (var audioReader = new AudioFileReader(@"m:\crooner2.wav"))
            using (var wavePlayer = new WaveOutEvent())
            {
                wavePlayer.Init(audioReader);
                wavePlayer.Play();
                // 等待播放完成
                while (wavePlayer.PlaybackState == PlaybackState.Playing)
                {
                    System.Threading.Thread.Sleep(100);
                }
            }
        }
    }
}

内容的提问来源于stack exchange,提问作者George Brown

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 11:15:44