1 つの .Net c# プロジェクトを複数の dll にコンパイルしようとしています。しかし、ここに問題があります。
これが私のプロジェクト構造です。
Bin
Dir1
Dir2
File1.cs
File2.cs
myproject.csproj
このプロジェクトを File1.dll と File2.dll にコンパイルします。File1.dll と File2.dll はどちらも、Dir1 と Dir2 にあるさまざまな .cs ファイルのコードを使用します。サブディレクトリにある .cs ファイル内のこれらのクラスの一部は、File1.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 を検査するときに、Dir1 と Dir2 の .cs ファイルから、File1.cs 内で File1.dll と同様に参照されているクラスのみが含まれるように、それらをコンパイルする方法はありますか? File2.dll?
Visual Studio でのビルド後のステップの一部として、できればこれを行いたいと考えています。
御時間ありがとうございます...
編集
ご回答ありがとうございます。ソリューションを多くのプロジェクトに分割するための多くの提案がありました。これは 1 つの方法ですが、File1.dll と File2.dll の 2 つの dll に対して作成された依存関係が必要かどうかはわかりません。説明させてください..
複数のプロジェクトを作成する際の問題は、File1.cs と File2.cs の両方に必要なコードがいくつかあることです。両方のプロジェクトでそれらを繰り返したくありません。共通コードを 3 番目のプロジェクトに保持するということは、File1.dll と File2.dll の両方に必要な 3 番目の dll が作成されることを意味します。私はこれをしたくありません。File1.dll と File2.dll のみを作成したいので、両方を 1 つのプロジェクトに保持しています。これを実現する方法について何か提案はありますか?
返信ありがとうございます。
乾杯。