2

C#2つの名前空間を持つプロジェクトがあります。GUIとファイルを含むGUI(Stoff3GUI名前空間として)。開始オブジェクトとしてマークされ、ライブラリ(名前空間として)とすべてのクラスが実際の作業を実行します。xaml.csStoff3Lib

これで、コードをコンパイルすると、.exeファイルStoff3GUI.exeとが届きます.dll Stoff3Lib.dll。Visual Studioでは、両方の名前空間が同じプロジェクトの一部です。

別のファイルを作成せずに、からファイルStoff3Libにクラスをコンパイルするにはどうすればよいですか?.exe.dll

編集:

xxx理解を深めるために、を私のプロジェクト名Stoff3に変更しました。

4

3 に答える 3

0

両方の名前空間が同じプロジェクトの一部である場合は、すでに1つのアセンブリのみを取得する必要があります。

これはWebプロジェクトの設定によって異なる場合があります(さまざまな種類のWebプロジェクトが、私が理解したことのない時間と方法でアセンブリを作成します)が、スタンドアロンの実行可能プロジェクトの場合、私が知る限り、すべての場合で実際には「1つのプロジェクトが1つのアセンブリを生成する」です。 m認識しています。プロジェクトが実際に1つしかないことを再確認してください。たとえば、プロジェクト内にアセンブリへの参照がないようにする必要があります。xxxLib

于 2012-08-13T09:33:22.683 に答える
0

あなたがここで何をしているのか完全にはわかりません。2つのプロジェクトを持つ単一の「ソリューション」があるように思われます。私の当面の考えは、必要なクラスをGUI開始プロジェクトに移動し、他のプロジェクトを削除することです。

于 2012-08-13T09:36:32.120 に答える
0

あなたが本当に持っているのは、2つのプロジェクトを持つ1つのVisualStudioソリューションだと思います。

写真は1000語の価値があるので、用語を明確にするために、VS2012では次のようになります。

TwoProjects

このソリューションの出力は、まさにあなたが説明するものです。

  • TwoProjects \ Stoff3GUI \ bin \ Debug \ Stoff3GUI.exe
  • TwoProjects \ Stoff3Lib \ bin \ Debug \ Stoff3Lib.dll

ここに画像の説明を入力してください

目的を達成するための最も簡単な方法は、2つの異なる名前空間を含む単一のVSプロジェクトを作成することです。目的の名前空間構造(この場合はStoff3GUIおよびStoff3Lib)に一致するフォルダーを追加することをお勧めします。

ここに画像の説明を入力してください

このソリューションをコンパイルすると、出力は単一のEXEになりますが、フォルダー/ファイル構造でモデルとビューの名前空間の分離を非常に明確に維持します。

  • OneProject \ bin \ Debug \ OneProject.exe

ここに画像の説明を入力してください

于 2013-09-02T19:12:31.947 に答える