5

私はプロジェクトに取り組んできましたが、プロジェクトが成長するにつれて、結合できない2つの部分が相互に依存していることに気付きました。

これらの2つの部分をa.exeとb.dllと呼びましょう。b.dllは、a.exeがデータを取得できるようにする実装を提供しますが、a.exeがさまざまなデータソースと通信できるように簡単に変更できるように、独自のスタンドアロンアセンブリにしたいです。

ただし、b.dllを参照するにはa.exeが必要ですが、b.dllには、a.exeの不可分の一部であるいくつかの関数が必要です。

このプロジェクトを書いているときに、テストのためにコンパイルしているので、a.exeとb.dllの両方が存在し、b.dllをa.exeに対して、a.exeをb.dllに対してコンパイルできます。 、しかし、これらの両方をソースから再構築するにはどうすればよいですか?

4

3 に答える 3

5

システムを3つのアセンブリにリファクタリングします。

  • a.exe-メインEXEはこれを参照する必要はありません
  • b.dll-今日お持ちですが、a.exeを参照していないため、c.dllを参照しています。
  • c.dll-これには、aとbの両方が参照する必要のある共通の部分/部分が含まれている必要があります
于 2011-12-19T18:42:14.523 に答える
4

一般に、これをリファクタリングし、共有依存関係を独自のアセンブリ(c.dll)に移動することをお勧めします。このようにして、a.exeとb.dllの両方がc.dllを参照できるため、この循環依存を回避できます。

于 2011-12-19T18:40:08.197 に答える
2

csc.exeを呼び出し、a.exeとb.dllのソースをa.exeにコンパイルし、csc.exeを呼び出し、b.dllのソースをb.dllにコンパイルしてa.exeを参照してから、csc.exeを呼び出します。前回は、a.exeのソースをa.exeにコンパイルし、b.dllを参照します。

于 2011-12-20T19:34:40.280 に答える