はじめに
リソースをアセンブリに組み込むことができるEmbeddedResource
ですが、テストで利用するファイルなんかを組み込んだり等々とても有用な機能です。
ただ最近EmbeddedResource
で組み込みたいファイル名にドット(.
)が二個あると正しく動作しないというバグ?仕様?を発見してしまいました。
<!-- ./Hoge.cs.metaというファイルがあれば組み込む例 --> <EmbeddedResource Include="./Hoge.cs.meta" LogicalName="Hoge.cs.meta" />
コンパイルは通りますが、実行時にそんなリソースはないというエラーを吐いてきます。
結構罠で気づくまで時間がかかってしまいましたが、一応解決方法を見つけたので書き残しておこうと思います。
対処法
WithCulture="false"
をEmbeddedResource
に付与してあげます。
<EmbeddedResource Include="./Hoge.cs.meta" LogicalName="Hoge.cs.meta" WithCulture="false" />
追記
公式ドキュメントにもドットが2個あると読み込めない旨の記述があるのを見つけました。
learn.microsoft.com