EXEとDLLを1つにまとめる

Top / Coding / .NET / EXEとDLLを1つにまとめる
 

ページ構成
−Top
  • −Coding
    • −.NET
      • ・.NETStandard
      • +3rdPartyライブラリ
      • ・AOP
      • +ASP.NET
      • ・CD.DVDにデータを書き込む
      • ・DPAPI
      • ・DryadLINQ
      • ・EXEとDLLを1つにまとめる
      • ・GPGの使用
      • +IEの操作
      • ・IMEの日本語確定によるEnterの判定
      • ・MACアドレスの取得
      • ・MSTest
      • ・MeCabの利用
      • ・MetroStyleApps
      • ・Microsoft.VisualBasic
      • ・NuGetパッケージの作成
      • ・Tipsまとめサイト
      • ・UACへの対応
      • ・VS2012単体テスト
      • ・VS以外のIDE
      • +Verごとの違い
      • ・VisualStudioビルドイベント
      • ・VisualStudio拡張機能
      • +WPF
      • ・WebAutomation
      • ・WinFormsメモ
      • +WinRT
      • ・csc.exeの使い方
      • ・msbuild
      • ・yield_return
      • ・アセンブリの難読化
      • ・ウィンドウ位置の正しい復元
      • ・クリップボードの監視
      • ・グローバルフック
      • ・コマンドラインツールの作成
      • ・コンポーネントの作成
      • ・サービスの開発
      • ・デバッグに関するTips
      • ・フォント幅の取得
      • ・マルチスレッド処理の勘所
      • ・モックフレームワーク
      • ・モニタの電源制御
      • ・ユーザー独自の設定ファイル作成
      • +開発環境
      • ・技術資料
      • ・継承インターフェース抽象クラスの使い分け
      • ・重複起動の禁止
      • ・数値解析
      • ・多言語化
      • ・標準ライブラリに関して
      • ・勉強メモ
    • +CUDA
    • +JavaScript
    • +MSOffice
    • +PHP
    • +PowerShell
    • +Python
    • +Ruby
    • +VBA
    • +misc
    • +画像処理
  • +Server
  • +memo
  • +misc
  • +カメラ
  • +科学技術
  • +記事
  • +数値解析
最新の10件
2018-01-16 更新
  • misc/Hardware/各種プロセッサの倍精度演算性能
2017-11-27 更新
  • Coding/misc/raspberrypi
2017-11-02 更新
  • Coding/.NET/NuGetパッケージの作成
2017-10-19 更新
  • Coding/MSOffice/VSTO/ThisAddin_Startupに処理を書く問題が起きる
2017-06-16 更新
  • Coding/.NET/VisualStudioビルドイベント
2017-05-28 更新
  • misc/Hardware/タブレット向けCPU/複製
2017-05-25 更新
  • Coding/Python/CloudVision
2017-05-24 更新
  • misc/ロードバイク/サイクルロード/奈良
2017-05-11 更新
  • misc/ソフトウェア/文章/文章校正、作成支援ツール
2017-03-15 更新
  • misc/ソフトウェア/プロジェクト管理ツール

Powered By

b_pukiwiki.official.png

edit

目次

  • 概要
  • EXE,DLLともにマネージドコード(.NET)の場合
    • ILMerge を利用する
    • その他の方法
  • DLLに、マネージドとネイティブが混在する場合
    • どういうときに使うのか
    • 解決策
      • テクニック
      • 有償ソフトウェア
      • 参考記事

概要 †

EXEやDLLがフォルダ内に複数散らばるのが嫌って場合の対応策。

↑

EXE,DLLともにマネージドコード(.NET)の場合 †

↑

ILMerge を利用する †

アプリケーションのEXEファイルやDLLファイルを1つにまとめるには? − @IT
http://www.atmarkit.co.jp/fdotnet/dotnettips/426ilmerge/ilmerge.html

.NET - 実行ファイルとDLLを一つにまとめる - Qiita [キータ]
http://qiita.com/krsak/items/75a257cc0866a7e8e4aa

xtrm Developer Tips: Using ILMerge and Eazfuscator.NET http://xtrmdevtips.blogspot.jp/2011/12/using-ilmerge-and-eazfuscatornet.html

obfuscation - Obfuscating multiple related .NET assemblies with babel obfuscator - Stack Overflow http://stackoverflow.com/questions/1531992/obfuscating-multiple-related-net-assemblies-with-babel-obfuscator

のぶろぐ dllをexeにまとめる ILMerge http://shen7113.blog.fc2.com/blog-entry-23.html

備忘録 | C#で実行ファイルにdllを埋め込む http://someprog.blog.fc2.com/blog-entry-5.html

.NET Framework4以降の場合はおぷしょんが必要

↑

その他の方法 †

  • Embed managed dlls easily in a .NET assembly at Lars Holm Jensen's Code Blog
    • http://codeblog.larsholm.net/2011/06/embed-dlls-easily-in-a-net-assembly/
    • リソースにDLLを丸ごと埋め込んで、reflectionで実行時にLoadする。
↑

DLLに、マネージドとネイティブが混在する場合 †

↑

どういうときに使うのか †

例えば、
C#で書いたライブラリ(DLL)と、C++/CLIで書いたラッパー(DLL)とが存在する場合。

具体例:

  • C++→C(DLL)→C#(クラスライブラリ) - 虚飾の王
  • http://d.hatena.ne.jp/lord_hollow/20100712/p1
↑

解決策 †

↑

テクニック †

  • なんか - 虚飾の王
    • http://d.hatena.ne.jp/lord_hollow/20131211#p1
    • CSC(C#のコンパイラ)の/target:module オプションを付けることで生成される .netmodule というファイルを、C++側に渡す
    • VSがサポートしてないので手順がめんどくさいものの、おそらくこれが一番スマート
  • Single Assembly Deployment of Managed and Unmanaged Code - Ralf's Sudelbücher
    • http://weblogs.asp.net/ralfw/archive/2007/02/04/single-assembly-deployment-of-managed-and-unmanaged-code.aspx
    • DLLを内部に読み込んでおいて、実行時にファイルを書き出す。
    • 例外処理をどうするか課題
↑

有償ソフトウェア †

  • BoxedApp : Application Virtualization Developer Tools
    • http://boxedapp.com/
    • 名前の通り。有償。
  • Spoon Studio - Virtualize Your Applications
    • http://spoon.net/studio
    • ライブラリに限らず、.NETやJAVAなど通常ランタイムが別途必要なものを1ファイルにまとめてしまうアプリ。有償。
↑

参考記事 †

How can a C++ windows dll be merged into a C# application exe? - Stack Overflow
http://stackoverflow.com/questions/72264/how-can-a-c-windows-dll-be-merged-into-a-c-sharp-application-exe


トップ   編集 凍結 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索   ヘルプ   最終更新のRSS
Last-modified: 2014-03-25 (火) (2091d)
Site admin: D*isuke YAMAKAWA

PukiWiki 1.4.7 Copyright © 2001-2006 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji. Powered by PHP 5.3.29. HTML convert time: 0.015 sec.