Visual Studio 2022 C#.NETで特定プロジェクト名のときのみ音声が聞こえない不具合。

不具合内容

"Pokemon"というプロジェクトで、音声ファイル(=wav)が再生されなくなった不具合が発生しています。
該当プロジェクトフォルダを削除し、同名のプロジェクトを作り直しても同じ問題が発生します。

実現したいこと

該当プロジェクト名で通常通り再生したい。

前提

環境

Windows 11 Pro Ver.23H2
Visual Studio Community 2022 64 Ver.17.9.6

作成時の設定

テンプレート: Windowsフォームアプリ [C#][Windows][デスクトップ]
場所: C:\Users\username\source\repos
フレームワーク: .NET 8.0

インストールしたライブラリ

・NAudio 2.2.1
・System.Data.SQLite.Core 1.0.118

該当コードの抜粋

問題が発生してからNAuido関連をコメントアウト、組み込みのSoundPlayerで試している。

C#:MainForm.cs

1namespace Pokemon 2{3 public partial class MainForm : Form 4 {5 // fields6 // 音声ファイルが読み込まれる変数7 //WaveStream wfs;8 // 音声操作のインスタンスが入る変数9 //WaveOutEvent mainBGM;10 SoundPlayer mainBGMS = new SoundPlayer(11 Path.Combine(12 Path.GetDirectoryName(Application.ExecutablePath), 13 "assets", 14 "sounds", 15 "pokemon_center.wav"));16 17 18 19 public MainForm()20 {21 InitializeComponent();22 23 // 音声ファイルを読み込む変数にファイルパスを指定して読み込む24 //wfs = new WaveFileReader(25 //Path.Combine(26 // Path.GetDirectoryName(Application.ExecutablePath),27 // "assets",28 // "sounds",29 // "pokemon_center.wav"));30 // 音声操作のインスタンス生成31 //mainBGM = new WaveOutEvent();32 // 音声ファイルを指定して初期化33 //mainBGM.Init(wfs);34 35 // 再生する36 //mainBGM.Play();37 mainBGMS.Play();38 }39...

詳しい不具合と試したこと

同名プロジェクトの再作成し実行

既存の該当プロジェクトを削除し同名で再度プロジェクトを新規作成し、元のソースコード群(*.cs, *Designer.cs, *.resx, Project.csproj, Project.csproj.user)を貼り付けて実行⇒正しく再生されない。

別名プロジェクトを作成し実行

別名例えば"Hogemon"などで新しく作ったプロジェクトに1同様ソースコード群を張り付ける⇒正しく再生される。

以上からコード自体はきちんと動いている(とおもう)

また、assetsフォルダ内(=\bin\Debug\net8.0-windows\assets\sounds)を空にするとPlay()関数実行時に「System.IO.FileNotFoundException: 'Please be sure a sound file exists at the specified location.'」が発生する。

別の場所に作ってみる

最初のプロジェクト作成画面で「C:\Users\username\source\repos\hoge」以下に該当プロジェクト名で作成したり、該当プロジェクトをデスクトップに移動させる⇒正しく再生される。
これらのプロジェクトを再度repos直下に移動させる⇒同様の問題が再発生する。

該当プロジェクトの名前変更

問題の発生しているプロジェクトをソリューションエクスプローラから"Pikemon"など別名称に変更すると問題が解消されます。
その後名前を戻す⇒再発生。

プロジェクト名(というより[*\repos\該当プロジェクト名]フルパスそのもの)に問題があるのでしょうか。

コードは正しそうなのでVS側で該当プロジェクト名に対する妙な紐づけがあるのかとも思いましたプロジェクト作成時に.vsフォルダ自体再作成されますよね。
プロジェクトごとに保持される設定ではなく、VS自体がどこか一か所に保存している設定だったりするのでしょうか。

コメントを投稿

0 コメント