あなたが望むものを正確に明確にすることはできませんが、環境/コマンドライン引数に基づいて定数値を生成する必要があるのでしょうか?
1 つのオプション (C プリプロセッサで自分自身を撃つこともできます): ビルド時に .CS ファイルを生成してコンパイルします。「ビルド前」のステップで簡単に実行でき、生成されたファイルをプロジェクトに追加するだけです。
ビルド時にファイルを生成するための基本的な手順を次に示します。プロジェクト フォルダーに CS を作成するための CMD ファイルを用意します。
:----- generate.cmd {file.Name} - generates some CS:
echo class Generated { public const int Value=42;} >%1
ビルド ステップの前に追加します (ソリューション -> プロパティ -> ビルド イベント
$(ProjectDir)generate.cmd $(ProjectDir)Generated.cs
プロジェクトに「Generated.cs」を追加します (上記の手順では、プロジェクト ルートになります)。
必要に応じて使用Generated.Value
してください。
このアプローチのより良い実装は、プロジェクト ファイル (.csproj) でカスタム プロパティを定義し、ビルドの実行時に設定することです ( MSBuildの "/property:name=value" 引数を参照)。プロジェクトで必要なものを直接実装するか (
WriteLinesToFile taskを使用して .csproj でファイルを生成できます)、プロパティを外部ツールに渡します。