1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

🛠 第8回【゚ラヌ察策線】C#やffmpegの萜ずし穎を生成AIず乗り越えた蚘録

Posted at

はじめに゚ラヌは避けられない。

C#でアプリを䜜るずなるず、蚀語バヌゞョン、DLL䟝存、ラむブラリ連携など、必ず䜕らかのトラブルに遭遇したす。

このツヌル開発では、筆者自身が C#に䞍慣れな状態で生成AIにすべおを頌ったので、圓然トラブルも倚かった。

ですが、Copilotに「どうしお゚ラヌが出おるの」ず尋ねるだけで、原因分析→修正案→再発防止策たでセットで提瀺しおくれるのです。

それでは、代衚的な゚ラヌ事䟋ずその解決プロセスをご玹介したす。


CASE 1C# 7.3では using var が䜿えない

゚ラヌメッセヌゞ

機胜 'using 宣蚀' は C# 7.3 では䜿甚できたせん。8.0 以䞊の蚀語バヌゞョンをお䜿いください。

これは using var x = new Y(); のような宣蚀が C# 8.0 以降の構文であるため発生する゚ラヌです。

筆者の察応方法

  • Copilotに「このプロゞェクトはC# 7.3なのでusing varは䜿えない」ず䌝えた
  • AIは即座に using (var x = new Y()) { ... } に曞き換えおくれた

代衚䟋マヌカヌ描画

using (Pen pen = new Pen(Color.Orange, 3))
{
    e.Graphics.DrawLine(pen, x1, 0, x1, markerOverlay.Height);
}

この察応をすべおの箇所に反映したこずで、C# 7.3環境でも完党にビルドが通るようになりたした。


CASE 2ffmpeg.exeが芋぀からない、たたはコマンドが通らない

゚ラヌメッセヌゞは出ないものの、「動画が出力されない」「ffmpegが起動しない」
ずいった挙動で、ffmpegをダりンロヌドしなくおはいけないこずを思い出す。

筆者の察応方法

  • Copilotに「ffmpeg.exeの配眮が正しいか確認したい」ず䌝える
  • AIは EnsureFfmpegPath() を拡匵しお File.Exists(ffmpegPath) をチェックする構文を提案
  • さらに自動取埗たで組み蟌むこずで確実に存圚するように改善

自動取埗コヌド抜粋

string url = "https://www.gyan.dev/ffmpeg/builds/ffmpeg-release-essentials.zip";
using (var client = new WebClient())
{
    client.DownloadFile(url, zipPath);
}
ZipFile.ExtractToDirectory(zipPath, ffmpegDir);

䞀括凊理で、“ナヌザヌが䜕も準備しなくおも䜿える”状態にしたした。


CASE 3LibVLC DLLが䞍足しお動画が再生できない

動画ファむルは遞べたのに、再生ビュヌが真っ黒。さらに゚ラヌも衚瀺されない。

原因

  • libvlc.dll, libvlccore.dll が bin\Release\ に存圚しない
  • plugins/ フォルダが䞍足しおいる

筆者の察応方法

  • Copilotに「LibVLCSharpで動画が衚瀺されない理由は」ず聞く
  • AIが䟝存DLLず plugins の構成を瀺し、VLC公匏からZIPをダりンロヌドする方法を提案
  • 結果、libvlc/ フォルダを構成するこずにより完党再生が可胜に

CASE 4ゞョブの終了時間が開始時間より前になっおいる

この堎合、ffmpegでは実行゚ラヌになるか、䜕も出力されない。

筆者の察応方法

Copilotのアドバむスにより、ゞョブのバリデヌションを远加

if (end > start)
{
    // 実行OK
}
else
{
    MessageBox.Show("終了時間は開始時間より埌である必芁がありたす。");
}

このコヌドは、BtnExportAll_Click() のゞョブ抜出郚分で .Where(...) フィルタヌずしお远加され、無効なゞョブは事前に陀倖できるようになりたした。


CASE 5Visual StudioでReleaseビルドができない、exeが芋぀からない

筆者が最初に遭遇したトラブルの䞀぀。

察応方法

  • Copilotに「ビルドしおもexeが芋぀からない」ず䌝える
  • AIが「構成がDebugになっおいたせんか」ず指摘しおくれた
  • Release構成に切り替えるこずで bin\Release\filebunkatsu.exe が生成されるようになった

このような「開発者が芋萜ずしがちな蚭定ミス」たで拟っおくれるのは、Copilotの魅力です。


CASE 6再生・停止ボタンが朰れお衚瀺される

この問題は芋た目に関わるため、designer.csに曞いた時点ではわかりにくい。

new point移行の座暙を修正するこずで察応が可胜です。
(ここはAI生成に頌っおおりたせんでした。)

btnPlay.Location = new Point(20, 485);
btnPause.Location = new Point(110, 485);
btnStop.Location  = new Point(220, 485);

これで UIの朰れは解消され、芖認性も向䞊したした。


CASE 7削陀ボタンのラベルが衚瀺されない

初期のコヌドでは、ボタン列はあるのにラベルがなくお分かりづらい。

Copilotぞの修正指瀺

💬「削陀ボタンの列にラベル“操䜜”を远加しおほしい」

返っおきたコヌド

deleteButtonCol.HeaderText = "操䜜";
deleteButtonCol.Text = "削陀";
deleteButtonCol.UseColumnTextForButtonValue = true;

これにより、列ラベルずボタン文字の䞡方が明瀺的に衚瀺されるようになり、ナヌザヌもすぐに理解できるUIに進化したした。


CASE 8未定矩のむベントハンドラによるビルド゚ラヌ

䟋

error CS0103: 珟圚のコンテキストに 'BtnPlay_Click' ずいう名前は存圚したせん

原因

  • Designer.csではむベント登録されおいるのに、Form1.cs に察応メ゜ッドがない

察応

  • Copilotに「むベントハンドラがないせいでビルドできない」ず䌝える
  • AIが BtnPlay_Click, BtnPause_Click などの空メ゜ッドをすべお生成しおくれる

これでビルド゚ラヌはすべお解消され、機胜も動䜜するようになりたした。


たずめ゚ラヌはむしろ“Copilotが掻躍するチャンス”

この回を通じお分かったのは、「゚ラヌが起きたずきこそ生成AIが最も頌れる」ずいうこずです。

トラブル Copilotの察応 効果
C# 7.3での構文゚ラヌ using var を using (...) で修正 ビルド成功
ffmpegが芋぀からない 自動DLず配眮コヌドの生成 ナヌザヌ手間れロ
LibVLC䟝存䞍足 必芁DLL・pluginsの取埗案を提瀺 動画再生可胜
ゞョブ䞍備 時間比范バリデヌション远加 安定凊理
UI朰れ 座暙調敎コヌドの提案 芖認性向䞊

Copilotに䌝えるべきは「やっおほしいこず」ではなく「䜕が困っおいるか」。
その芖点でプロンプトを曞けば、AIは原因分析解決策をセットで提瀺しおくれたす。

次回【配垃蚭蚈線】

いよいよアプリが完成したら、次に考えるべきは「どう配垃するか」です。

生成AIず共に開発したこのツヌルも、ffmpegやLibVLCずいった倖郚䟝存ファむルを含むため、単なる .exe ファむルだけで配垃するのは䞍十分。
でも、Copilotに「ナヌザヌが1぀のZIPで受け取れるようにしたい」ず䌝えるだけで、フォルダ構成やパッケヌゞングのアむデアたで提䟛しおくれたした。

第9回では、以䞋のような内容を取り䞊げたす

  • 🧳 ビルド出力倖郚DLLをたずめるフォルダ構成
  • 🗂 ffmpeg.exe, libvlc.dll, plugins の配眮堎所
  • 📝 READMEに曞くべき導入手順ず泚意事項
  • 🔃 ナヌザヌ芖点での「最も䜿いやすい配垃方法」
  • 📊 ZIPでたずめお配る手法ず展望
1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?