2

私のターゲット環境は .cs ファイルのみを受け入れ、実行時にそれらをコンパイルします。

私のプロジェクトには gui.cs と他の 4 つのクラス ファイルがあります。約 9000 行のコードです。

ビルド後のイベントとして、5 つのファイルすべてを 1 つの cs ファイルにマージする方法はありますか?

4

2 に答える 2

5

単一の .cs ファイルが必要なのはなぜですか? 単一のクラスを作成しようとしている場合は、部分クラスを使用できます...ただし、9000 行のコードがある場合は、あまり良い考えではないように思えます。

マージをどのように行いたいですか?単純な連結の場合:

copy Foo.cs + Bar.cs Output.cs

ただし、もう少しスマートなものが必要になると思います。その場合、マージを行うための小さなツールを作成し、ビルド後のイベントでそのツールを実行する必要があります。

なぜこれをやりたいのか、もっと詳しく教えていただけますか?より良いアプローチがあるかもしれません。

于 2010-04-11T09:06:56.660 に答える
0

これを行うために組み込まれたものは何もありません。しかし、ツールの構築は十分に簡単なはずです。

先頭に含める必要があるディレクティブを使用する以外は、ファイルを追加するだけでよいはずです。

重複する using ディレクティブは単なる警告です。

  1. 各ファイルからの出力の先頭に先頭の using ステートメントをキャプチャします。
  2. 各ファイルの残りを順番に出力に追加します。

たとえば、次のようにコンパイルすると、重複する警告が 1 つだけ表示されusingます。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System;

namespace ConsoleApplication1 {
  class X1 {
    public static void Do() {
      Console.WriteLine("Hello world");
    }
  }
}

namespace ConsoleApplication1 {
  class Program {
    static void Main(string[] args) {
      X1.Do();
    }
  }
}
于 2010-04-11T09:25:39.383 に答える