質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
DLL

DLL(Dynamic Link Library)とは、他のモジュールからも使用する事が出来る、関数とデータが格納されているモジュールのことです。

.NET Core

.NET Coreは、マネージソフトウェアフレームワークでオープンソースで実装されています。クロスプラットフォームを前提に考えられており、Windows/Mac/Linuxで動くアプリケーションを作成することが可能です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

Q&A

1回答

3399閲覧

クラスライブラリ(DLL)の単一ファイル化の方法

kdcom

総合スコア0

DLL

DLL(Dynamic Link Library)とは、他のモジュールからも使用する事が出来る、関数とデータが格納されているモジュールのことです。

.NET Core

.NET Coreは、マネージソフトウェアフレームワークでオープンソースで実装されています。クロスプラットフォームを前提に考えられており、Windows/Mac/Linuxで動くアプリケーションを作成することが可能です。

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

プラグイン

プラグイン(plug-in)は、ソフトウェアアプリケーションの機能拡張の為に開発された、一組のソフトウェアコンポーネントのことを指します。

0グッド

1クリップ

投稿2021/09/01 08:15

編集2021/09/01 08:20

.NET Core3.1のクラスライブラリ(C#)で依存しているDLLを含め
単一のDLLファイルを作成する事はできるのでしょうか。
(将来的にはNET6に対応を考えています。)

アプリとは別に配布するプラグインを単一DLLファイル(クラスライプラリ)
として提供したいと考えています。

アプリのexeに依存するDLLをまとめて単一exeファイルを
作成する方法は見つかったのですが、
クラスライブラリでの単一DLLファイル作成方法を見つける事ができませんでした。

有用なサイトやツール等の情報があれば教えていただけると幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

BeatStar

2021/09/01 08:29

もしかして、sub1.dll, sub2.dll, sub3.dll を使う subEx.dll を作って、 それをとある実行ファイルからアクセスする。 的なものでしょうか。 それなら、「試せばいい」のでは? DLLのリンク自体がわからないならともかく、DLLの作り方とリンク方法がわかっているのだから、 実行ファイルがDLLファイルに変わっただけでは?
dodox86

2021/09/01 09:26

ILMerge については調べてみましたか?
kdcom

2021/09/01 12:04

ありがとうございます。 ILMergeについて調べてみます。
kdcom

2021/09/02 01:22 編集

>それなら、「試せばいい」のでは? VisialStudio2019を使用しているのですが、 「試す」手順、方法がわからなかったので質問させていただきました。 もし「試す」手順、方法をご存じでしたらご教示いただけますか。 よろしくお願いいたします。
BeatStar

2021/09/02 02:10

> 「試す」手順、方法がわからなかったので質問させていただきました。 何がわからないのでしょうか。 『DLLの作り方』なのか、「DLLをリンクさせる方法」なのか、とかでも違いますし、 発想は実行ファイルから使うときと一緒です。 単にMainメソッドがあるかどうかぐらい。 (細かく言うと違うだろうけど、大体こんなもの) それに、『どのように試したか』とか『どのようなキーワードで検索したか』、「参考にしてみたサイト」とかぐらいは書きましょう。 回答者は質問者と同じ環境にある…わけではありません。
kdcom

2021/09/03 04:23

ILMergeを使用してみたのですがエラーとなってしまいました。 .nuget\packages\ilmerge\3.0.29\tools\net452\ILMerge.exe /t:library /out:AB.dll A.dll B.dll An exception occurred during merging: ILMerge.Merge: There were errors reported in A's metadata. 配列の次元が、サポートされている範囲を超えました。 場所 ILMerging.ILMerge.Merge() 場所 ILMerging.ILMerge.Main(String[] args) A,B.dllはそれぞれ、正常に動作しているdllですが、 もう少し、調べてみます。
guest

回答1

0

exeと同じで以下の手順でできます。

VisualStudioのソリューションエクスプローラー>作成したいクラスライブラリプロジェクトを右クリック>発行>フォルダで発行

以下のプロパティを変更

  • ターゲットランタイムを移植可能以外に
  • 公開オプション>単一ファイルの作成

投稿2021/09/12 11:48

soi013

総合スコア149

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問