LoginSignup
3
7

More than 5 years have passed since last update.

ILMergeのオプション(internalize他)

Last updated at Posted at 2017-02-02

ILMergeを使ってDLLファイルを結合することがあったので、そのときに触ったオプションについて記載します。

基本ケース

B.dllとC.dllを結合してA.dllを作成します。

ilmerge /out:A.dll B.dll C.dll

オプション

/target

library、exe、winexeが使えます。
特にtarget指定しなくても、以下のDLL同士の結合は問題なくできました。
何かdllからexeとかに変更するときに指定するのかもしれません。

ilmerge /target:library /out:A.dll B.dll C.dll

/internalize[:filename]

publicのものをinternalにします。

ilmerge /internalize /out:A.dll B.dll C.dll D.dll

とすると、CとDはinternalになります。

ilmerge /internalize:exclude.txt /out:A.dll B.dll C.dll D.dll

とした場合、exclude.txtにNamespaceまたclassを記載して、internalにしないものを指定します。
例として、exclude.txtにC.dllのNamespaceを指定した場合は、internalになるのはD.dllだけになります。

/ndebug

指定することで、pdbファイルを同梱しないように設定できます。
デバッグ用途でない場合は指定しておけばよさげです。

オプションのリスト

Usage: ilmerge [/lib:directory]* [/log[:filename]] [/keyfile:filename [/delaysign]] [/internalize[:filename]] 
[/t[arget]:(library|exe|winexe)] [/closed] [/ndebug] [/ver:version] [/copyattrs [/allowMultiple] [/keepFirst]]
[/xmldocs] [/attr:filename] [/targetplatform:<version>[,<platformdir>] | /v1 | /v1.1 | /v2 | /v4] 
[/useFullPublicKeyForReferences] [/wildcards] [/zeroPeKind] [/allowDup:type]* [/union] [/align:n]
 /out:filename <primary assembly> [<other assemblies>...]

参考

3
7
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
3
7