|
.NET TIPS アプリケーションのEXEファイルやDLLファイルを1つにまとめるには?デジタルアドバンテージ 遠藤 孝信2006/03/24 |
![]() |
|
|
|
外部のコンポーネント(通常はDLLファイル)などを利用して.NETでアプリケーションを作成する場合、アプリケーション本体(EXEファイル)の実行には当然ながらそれらのDLLファイルが必要になる。しかしアプリケーションをユーザーに配布する場合などでは、ファイルの数は少ない(できれば1つのEXEファイルのみの)方が扱いやすい。
米Microsoftが無償で提供しているツール「ILMerge」を利用すれば、EXEファイルと、その実行に必要な複数のDLLファイルを1つのEXEファイルにまとめることが可能だ(正確には、ILMergeは複数のアセンブリを1つのアセンブリにマージする)。
複数のファイルを1つにまとめる「ILMerge」
ILMergeは次のページからダウンロードできる。このページには.NET Framework 2.0用と1.1用のインストール・パッケージ(.msiファイル)が用意されている。
また、ILMergeに関するより詳細な情報は次のページから参照することができる(これはILMergeの作者であるMichael Barnett氏のページである)。
ダウンロードした.msiファイルを実行すると、デフォルトでは「C:\Program Files\Microsoft\ILMerge」に「ILMerge.exe」がインストールされる。
ILMergeはコマンドラインから実行するコンソール・アプリケーションであるため、任意の場所から実行するにはインストールされたディレクトリを環境変数「PATH」に含めるか、PATHに設定されているディレクトリにILMerge.exeをコピーする必要がある(あるいは以下で紹介しているGUIツールを利用すればWindowsアプリケーションとして実行できる)。
ILMergeの基本的な使い方
ILMergeにはいろいろなコマンドライン・オプションが用意されているが、基本的な使い方としてはコマンド・プロンプトから次のようにして実行する。
この例では、1つのアプリケーションを構成する3つのファイル(MainApp.exe、ConponentA.dll、ComponentB.dll)を、MergedApp.exeにまとめようとしている。
| |
| ILMergeの実行例 | |
| この例では、MainApp.exeはConponentA.dllおよびComponentB.dllで実装されているクラスを使用しているものとする。/out:オプションは必須で、出力されるEXEファイルのファイル名を指定する。 |
なお、/wildcardsオプションを指定すれば、ディレクトリ内のすべてのDLLファイルを「*.dll」により指定できる。また、ILMergeは複数のDLLファイルを1つのDLLファイルにまとめることもできる。詳しくはILMerge.exeと同時にインストールされるドキュメントを参照していただきたい。
ILMerge用GUIツール「Gilma」
ILMergeはコンソール・アプリケーションであるが、オープンソースとして開発が進められているツール「Gilma」を利用すれば、Windowsアプリケーションとして実行できる。
Gilmaは次のページからダウンロードできる*。
| * 本稿執筆時点では、Gilmaのインストール・パッケージである「SetupGilma.msi」は.NET Framework 1.1用であり2.0では実行できない。2.0でGilmaを利用するためには「Gilma-bin.zip」をダウンロードして、任意のディレクトリに展開すればよい。 |
次の画面はGilmaによりファイルをマージしようとしているところだ。Gilma自体は「Gilma.exe」と「GilmaLogic.dll」の2つのファイルで構成されているが、ここではそれを1つのファイルまとめようとしている。
![]() | |||||||||||||||
| Gilmaの実行画面 | |||||||||||||||
ここではGilma.exeとGilmaLogic.dllの2つのファイルをGilma1.exeにまとめようとしている。
|
ファイルのマージが成功すれば次のようなメッセージが表示される。ちなみにこのメッセージは、ILMergeを/logオプションを付けて実行した場合に表示されるメッセージである。
![]() |
| Gilmaの処理結果メッセージ |
| Gilmaは内部でILMergeを実行してファイルのマージを行う。このメッセージは/logオプション付きで実行されたILMergeが出力したメッセージ。 |
この例の場合にはGilma1.exeが作成される。そしてこのEXEファイルは、DLLファイル(GilmaLogic.dll)なしで実行できる。![]()
| 利用可能バージョン:.NET Framework 2.0のみ カテゴリ:開発環境&ツール 処理対象:ツール |
|
||||||||||||||||||||||||||||
| 「.NET TIPS」 |
- Visual Studio 2010に本当に乗り換えるべきか? (2010/9/2)
Visual Studio 2010では何が良くなるのか? 業務アプリケーション開発者の視点で、VS 2010の開発生産性、UX、新機能について議論した - PHPでWindows Azureブロブ・ストレージを活用しよう (2010/9/1)
PHPアプリでもWindows Azureストレージにアクセス可能。画像ファイルなどを格納できるブロブの活用方法を解説する - UXとは何ぞや? UXを高める武器を手に入れよう! (2010/8/31)
開発者はいかにUXと付き合うべきか? いまUXを学ぶ理由、その概念と定義、メリット、大手各社のUXガイドラインを紹介 - 逆引きリファレンス:jQuery 1.4編 (2010/8/27)
最終回となる今回は、連載中にリリースされたjQuery 1.4で追加された新機能を中心に解説。すぐに役立つ16本を一挙公開
|
|
スキルアップ/キャリアアップ(JOB@IT)
スポンサーからのお知らせ
- - PR -
- - PR -
お勧め求人情報











