2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[C#]カルチャの設定の影響でFileLoadExceptionが出た話

Posted at

環境

Visual Studio Community 2015 Update3

経緯

ある日、自作のライブラリのDLLを読み込もうとしたらFileLoadExceptionが出ました。以下のようなものです。

例外がスローされました: 'System.IO.FileNotFoundException' (Nac.Altseed.Test.exe の中)

追加情報:ファイルまたはアセンブリ 'Nac.Altseed, Version=0.1.5.0, Culture=ja-JP, PublicKeyToken=null'、またはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりません。

Nac.Altseedというのが自作のライブラリです。それで、この例外にはFusionLogプロパティが含まれていました。FusionLogが見られるようにするためには何か下準備が必要だった気がしますが、今回は割愛します。

FusionLogの最後は以下のような行が含まれていました。

ログ: 新しい URL file:///D:/Documents/Visual Studio 2015/Projects/Tools/Nac.Altseed/Dev/Nac.Altseed.Test/bin/Debug/ja-JP/Nac.Altseed.DLL をダウンロードしようとしています。
ログ: 新しい URL file:///D:/Documents/Visual Studio 2015/Projects/Tools/Nac.Altseed/Dev/Nac.Altseed.Test/bin/Debug/ja-JP/Nac.Altseed/Nac.Altseed.DLL をダウンロードしようとしています。
ログ: 新しい URL file:///D:/Documents/Visual Studio 2015/Projects/Tools/Nac.Altseed/Dev/Nac.Altseed.Test/bin/Debug/ja-JP/Nac.Altseed.EXE をダウンロードしようとしています。
ログ: 新しい URL file:///D:/Documents/Visual Studio 2015/Projects/Tools/Nac.Altseed/Dev/Nac.Altseed.Test/bin/Debug/ja-JP/Nac.Altseed/Nac.Altseed.EXE をダウンロードしようとしています。

ファイルパスを何パターンか探してみてダメだったみたいですね。それで、bin/Debug/ja-JP/Nac.Altseed.DLLとかに探しに行ったようですが、実際にDLLが置いてあるのはbin/Debug/Nac.Altseed.DLLで、ja-JPディレクトリが無いので見つからなかったみたいです。ということは、プロジェクトのカルチャの設定が悪さをしているのでしょう。

調べてみると、プロジェクト設定の「アプリケーション > アセンブリ情報 > ニュートラル言語」の設定が「日本語」になっていました。NuGetにアップロードする際に日本語のプロジェクトだからといってカルチャを設定していたのが悪かったみたいです。ですが、この設定を「(なし)」にしてみても症状は改善しませんでした。

試しにAssemblyInfo.csを見てみたところ、次のような1行を見つけました。

[assembly: AssemblyCulture("ja-JP")]

プロジェクト設定から変更しただけではこの属性が消えないことがあるのかもしれません。この行を消してみると、FileLoadExceptionが出ずに読み込むことができました。

2
0
0

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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?