会社用のソフトウェアツールを開発しています。Visual Studio、C# を使用し、.NET 4.0 をターゲットにしています。要件の 1 つは、ソフトウェアが 3 つのバージョン (限定、標準、および拡張) でリリースされることです。私の会社にはインターン生や研修生が何人かおり、正社員や管理職もいます。また、各グループには別のバージョンのソフトウェアが提供されます。インターン向けの限定バージョン、従業員向けの標準バージョン、マネージャー向けの拡張バージョンです。これらは私に与えられた要件です。さらに、バージョンごとに 1 つの実行可能ファイル (dll ファイルではない) である必要があります。
そこで、条件付きでコンパイルおよびビルドされる一連のファイルを含む 1 つのプロジェクトを作成しました。メイン プログラムでは、ディレクティブ #if や [Conditional] 属性を使用して、現在の構成に応じて必要なクラスのみをインスタンス化できます。
ただし、現在不要なファイルは、とにかくコンパイルおよびビルドされます。そして、作成された実行可能ファイルには、それらのファイルのすべてのコードが含まれていますが、これは望ましくなく、私に与えられた要件を満たしていません。各実行可能ファイルには、対象となる従業員グループに必要なコードのみを含める必要があります。(これはセキュリティ上の理由によるものです。)
私の質問は、現在の構成に応じて、ファイルのグループをコンパイルプロセスから除外するにはどうすればよいですか?