.NET C#プロジェクトを複数のDLLにコンパイルしようとしています。しかしここに事がある。1つのプロジェクトを複数のdllにコンパイルする方法
これは私のプロジェクト構造です。
Bin
Dir1
Dir2
File1.cs
File2.cs
myproject.csproj
このプロジェクトをFile1.dllとFile2.dllにコンパイルします。 File1.dllとFile2.dllは、Dir1とDir2にあるさまざまな.csファイルでコードを使用します。サブディレクトリに存在する.csファイル内のこれらのクラスの一部は、File2.csによって必要とされ、他のクラスはFile2.csによって必要とされます。 File1.csとFile2.csの両方で使用されるものがあります。
私は次のように使用:
csc /t:library /out:File1.dll /recurse:*.cs
csc /t:library /out:File2.dll /recurse:*.cs
しかし、結果のDLLは、単に異なるファイル名を持つ互いの正確なコピーでした。私がそれらをコンパイルする方法はありますので、オブジェクトブラウザの各dllを調べると、File1.dllのFile1.csで参照されているDir1とDir2の.csファイルのクラスだけがありますFile2.dll?
私はこれをVisual Studioのポストビルドステップの一部として行うことをお勧めします。お時間を
おかげで...
EDITすべての回答について
感謝。ソリューションを多くのプロジェクトに分割するための提案が多数ありました。それはそれを行う一つの方法ですが、私は、File1.dllとFile2.dllという2つのdllのために作成された依存関係を必要とするかどうかはわかりません。私に説明させてください。
複数のプロジェクトを作成する際に見られる問題は、File1.csとFile2.csの両方に必要なコードがいくつかあることです。私はそれらを両方のプロジェクトで繰り返すことはしません。 3番目のプロジェクトで共通コードを保持すると、File1.dllとFile2.dllの両方に必要な3番目のdllが作成されます。私はこれを望んでいない。 File1.dllとFile2.dllだけを作成して、1つのプロジェクトにそれらを保存しておきたいのです。これをどうやって行うかについての提案はありますか?
返信いただきありがとうございます。
歓声。
各 'dll'に提供する' .cs'ファイルの種類を指定する必要があります。これらが1つのプロジェクトに含まれているため、期待していなかった依存関係があることがわかります。 – Oded
ありがとうございました。しかしそれは、プロジェクトの内容が変わるたびにスクリプトを変更する必要があることを意味します。または、少なくとも手動で変更をプロジェクト全体を分析します。参照されているクラスを、それらが入っているファイル/フォルダから自動的にリンクできるスイッチはありませんか?新しいファイルが必要な場合は、毎回VSにプロジェクトをビルドするたびに参照する必要があります。毎回毎回それらを含める必要はありません。 – user20358
そうです。または、組み込みシステムとは異なるビルドシステムを使用しますが、同期させておく必要があります。プロジェクトを複数に分割するのが最も簡単です。 – Oded