ファイル・ディレクトリが見つからない例外。パス文字列のミス、作業ディレクトリ、配布物の欠けがほとんど。
先に結論
FileNotFoundException … ファイル、DirectoryNotFoundException … 親フォルダ側
- 例外の
FileName / メッセージのパスをそのまま確認
- 相対パスは カレントディレクトリ依存(Visual Studio / IIS / サービスで違う)
- アセンブリ読み込み失敗も FileNotFound で出ることがある(DLL 名に注意)
切り分け
- 例外に出ているフルパスを控える
- そのパスが実在するか OS 上で確認
- 相対なら
Environment.CurrentDirectory / AppContext.BaseDirectory をログ
- Docker / Linux なら大文字小文字・スラッシュも確認
- DLL 名なら依存アセンブリのコピー・発行設定を疑う
対策の型
- コンテンツは
BaseDirectory 基準でパス結合
- 設定で絶対パスまたはコンテンツルートを明示
- 発行にファイルを含める(csproj の CopyToOutputDirectory)
- 存在確認してから開く+分かりやすいエラーメッセージ
ざっくりまとめ
- パスを信じず、例外のパスとカレントをログする
- 相対パスは環境で壊れる
- DLL の FileNotFound は別問題として扱う
関連記事