ディレクトリの中身をまるごと1つの resx ファイルに固めちゃえ!

.NET Framework のアプリケーションで画像リソースの扱いが面倒だったのでツールを1つ作りました。

その紹介です。

ディレクトリの中身をまるごと1つの resx ファイルに固めるお手軽ツールです。


Microsoft Visual C# 2010 Express Edition で1万点ほどの画像リソースを扱うアプリケーションを作っていました。

Visual Studio で画像リソースを扱う方法はいくつかあって

  1. exe の配下に画像を配置することを前提にし動的に読み込む。
    • 画像を Visual Studio で全く管理しないためビルドプロセスがとにかく簡単である。
    • インストーラーに画像を別個で含める必要があり、配布が少し面倒になる。
  2. resx ファイルにしコンパイルで exe に組み込む。
    • リソースの数が多いと resx ファイルの管理がとにかく面倒である。
    • ビルドが楽である。
    • exe に組み込まれるので配布が楽になる。
  3. プロジェクトにリソースとして組み込む。
    • Visual Studio での操作は難しく、プロジェクトファイルをテキストエディタ等で直接書き換える等の措置をしないとまともに作業できない。
    • ビルドプロセスが少し長くなる。
    • exe に組み込まれるので配布が楽になる。

最初は 1 番の方法を採っていたのですが正式にリリースして配布するとなったときに画像ファイルがばらばらにならずに1つの exe にまとまっていて欲しいという要件が出てきました。

かといって最後の方法はビルドがちょっと長くなるのが嫌で、resx ファイルを使いたいけど管理が面倒でどうにかならないかなぁと思っていました。

ツールを探したけども簡単には見つからず(本当はあるかもしれない)、そうしている内に .NET って普通に resx ファイルを扱うクラスがあるってことに気づいて、ならツールを作ってしまえと思ったわけです。

最初は自分だけのツールを作り、画像を1つのリソースファイルに固めて、無事アプリケーションは出来上がり、リリースも済ませました。

せっかく作ったツールだけども自分が必要になったということは他にも必要になる人がいるんじゃないかという可能性もちょっとだけ考えて汎用的なツールに作り直したものが今回公開したツールです。