実現したいこと
2020年頃から、VS2019のC#言語のプログラムを開発し、その後、時々改造してます。
発行した実行ファイル TellAutoRes.exe は、D:\VS2019\C#\TellAutoRes\bin\Release\ フォルダー内に生成されます。
今まで、 TellAutoRes.exe は、単体で別のフォルダー D:\TellAutoRes に転送して、そのフォルダー内で起動して運用してました。
しかし今回、改造した TellAutoRes.exe を D:\TellAutoRes フォルダーに転送して、起動したい。
発生している問題・分からないこと
D:\TellAutoRes フォルダーに転送すると、エラーが出て起動しなくなりました。
確かに、C#プログラムの中の
using System.Speech.Synthesis;
この宣言が無効になっているようです。
なにを設定変更すればよいのでしょうか。
なお、上記 \Release\ フォルダー内のファイル全体を D:\Release\ フォルダーに転送して、その中の TellAutoRes.exe を起動すると、ちゃんと実行できます。
そして、その \Release\ フォルダー名を 例えば、\TellAutoRes\ などに変更すると、エラーになります。
エラーメッセージ
error
1-----エラーメッセージはこのような内容です。--------------------------------------------------------- 2ハンドルされていない例外: System.PlatformNotSupportedException: システムに音声がインストールされていないか、または現在のセキュリティ設定で使用可能な音声がありません。 3 場所 System.Speech.Internal.Synthesis.VoiceSynthesis..ctor(WeakReference speechSynthesizer) 4 場所 System.Speech.Synthesis.SpeechSynthesizer.get_VoiceSynthesizer() 5 場所 System.Speech.Synthesis.SpeechSynthesizer.SetOutputToNull() 6 場所 System.Speech.Synthesis.SpeechSynthesizer.SetOutputStream(Stream stream, SpeechAudioFormatInfo formatInfo, Boolean headerInfo, Boolean closeStreamOnExit) 7 場所 TellAutoRes.Program.Speech(String sMassage) 8 場所 TellAutoRes.Program.Login() 9 場所 TellAutoRes.Program.Main(String[] args) 10----------------------------------------------------------------------------------------------------- 11
該当のソースコード
ソースコード画面で起動してないので、省略します。
試したこと・調べたこと
上記の詳細・結果
CHAT GPTで質問したら回答があったが、微妙な問題点が伝わらなかった。
回答がずれてる気がした。
上記 \Release\ フォルダー内のファイル全体を D:\Release\ フォルダーに転送して、その中の TellAutoRes.exe を起動すると、ちゃんと実行できます。
実行ファイルの問題ではなく、設定ファイルの問題のような気がします。
補足
因みに、
D:\VS2019\C#\TellAutoRes\ 内ファイルとルートフォルダー
App.config
bin
obj
Program.cs
Properties
publish
TellAutoRes.csproj
TellAutoRes.csproj.user
TellAutoRes.sln
TellAutoRes_1_TemporaryKey.pfx
TellAutoRes_2_TemporaryKey.pfx
TellAutoRes_3_TemporaryKey.pfx
TellAutoRes_4_TemporaryKey.pfx
TellAutoRes_TemporaryKey.pfx
D:\VS2019\C#\TellAutoRes\bin\Release\ 内ファイル
app.publish
TellAutoRes.application
TellAutoRes.exe
TellAutoRes.exe.config
TellAutoRes.exe.manifest
TellAutoRes.pdb
です。
0 コメント