.net4.5にしてからILMergeが動かない(いい感じで動作しました)

2018年10月27日土曜日

Visual Studio

t f B! P L
 会社が、windows10、windows server2012以降のOSが標準になってきたなか、.net3.5で開発してたアプリが動作しない(Windows 機能の有効化または無効化でできますが、設定変更はできるだけしたくない)端末が増えてきて、作っているアプリの.net frameworkを更新する必要が出てきました。
 とりあえず、4.0以降であれば、互換性があるみたいで、4.5以降で各OSに対応していそうなので4.5を指定。
 配布が楽になるように、dllなんかも1ファイルにする「ILMerge」を使用していたんですが、どうも.net 4.0以降はうまく動かず。
 で、調べてみると、新しいILMergeはnugetに移ったぽいです。
 早速、Nugetを起動して、ILMergeで検索。おー。あるある。
 あわせて、.net 4.5以降はオプションも変更が必要なので変更しました。
 ※buildと一緒にILMergeが動いてほしいので、「ビルド イベント」のビルド後イベントのコマンド ラインに追加しました。

以下が変更後のコマンド
"{プロジェクトフォルダパス}\packages\ILMerge.3.0.18\tools\net452\ILMerge.exe"  /v4 /wildcards /out:$(TargetName)_4.5.exe $(TargetFileName) *.dll 

 絶対パスと、バージョン直指定が何ともですが、うまく動きました。

QooQ