ページ 11

DLLを一つにまとめたい

Posted: 2016年8月19日(金) 17:02
by aridai1221
C言語 で書かれた DLL (A.dll) を
C# で書かれた DLL (B.dll) で利用しているのですが、
これらを .NET Framework で利用できる1つの DLL (C.dll) にすることはできるのでしょうか。

A.dll ... extern "C" で書かれている C言語 の ライブラリ
B.dll ... DllImport を利用している C# の ライブラリ
C.dll ... .NET Framework 向けの ライブラリ

ググると ILMerge というものがヒットしたのですが、
これは .NET Framework によって生成された アセンブリ にのみ対応しているようで
うまくいきませんでした。

Re: DLLを一つにまとめたい

Posted: 2016年8月19日(金) 22:18
by YuO
aridai1221 さんが書きました:C言語 で書かれた DLL (A.dll) を
C# で書かれた DLL (B.dll) で利用しているのですが、
これらを .NET Framework で利用できる1つの DLL (C.dll) にすることはできるのでしょうか。
純粋に出来るかどうかで言えばどちらもCOFFですしできるでしょうけれども,その手段は自分でlinkerを書くことになるかと思います。
一つにすることにメリットはないと思いますが,どのような目的でそれをしたいのでしょうか。

Re: DLLを一つにまとめたい

Posted: 2016年8月20日(土) 08:08
by aridai1221
YuO さんが書きました:一つにすることにメリットはないと思いますが,どのような目的でそれをしたいのでしょうか。
ただDLLの数が多くなったときに複雑そうに見えるからです。

Re: DLLを一つにまとめたい

Posted: 2016年8月21日(日) 16:47
by YuO
aridai1221 さんが書きました:
YuO さんが書きました:一つにすることにメリットはないと思いますが,どのような目的でそれをしたいのでしょうか。
ただDLLの数が多くなったときに複雑そうに見えるからです。
アプリケーションの利用者から見た場合であれば,DLLが多くても関係ないです。
ライブラリの利用者から見た場合にDLLが単純に多いと,それへの参照設定等が面倒ではありますが,対策としてはnuget使って.nupkg化してしまうことでしょう。
nugetにパッケージをアップロード出来るのが一番使いやすいのですが,それ以外にも,
  • ローカルのディレクトリをnugetの検索対象に追加しておく
  • mygetなどのサービスを使う
  • 自分でWebサーバーを立てて,nuget.serviceパッケージを使ったり,それに相当する物を使ってサーバーを代替する
  • アプリケーションにNuGet.configを含めて,そこに.nupkgのあるディレクトリを含める
などの方法が使えます。

Re: DLLを一つにまとめたい

Posted: 2016年8月22日(月) 05:25
by aridai1221
無理にDLLを1つにすることはないですね。
YuOさん、ありがとうございました。