|
.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」 |
TechTargetジャパン
- Kinectが切り開く“夢の近未来” (2012/2/2)
日本を含めた世界中でKinect for Windowsセンサー商用版とSDK正式版がリリース。未来のコンピューティングはどう変化するのか? - 3つの視点でネイティブと.NETの適材適所を考察 (2012/1/31)
アプリ開発は「ネイティブ」と「.NET」、どちらが最良? その問いには「適材適所」と答えるしかない。では、“適所”は一体どこかを考察する - SQL Azure Data Sync入門 (2012/1/30)
SQL Azure/SQL Serverデータベース間のデータ同期を簡単に実現するサービスとは? その仕組みや使用手順を解説 - Windows Phoneアプリ市場の現状を分析する (2012/1/27)
Windows Phone のアプリ・ストアに日々登録されている多種多様なアプリ。カテゴリ別のアプリ数は? 市場の現状を明らかにする
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -




