ビルド前イベントを活用する、その8
ビルド前イベントはバッチコマンドですので、テキストファイルを出力することができます。
ビルド前に下記のような cs ファイルを上書き配置してやれば、アプリケーションにビルドした時間の文字列を埋め込むことが可能です。
myconst.cs はあらかじめ、プロジェクトに追加しておいてください。ビルド寸前ごとに myconst.cs の内容は上書きされて、その直後にビルドされるため、実質的にビルドの時間をアプリケーションに埋め込むことになります。
namespace aaa
{
public class MyConst
{
public const string BUILD_DATETIME = "2025/05/25 11:26:18.68";
}
}
下記がビルド前イベントの実行スクリプトです。$(RootNamespace) は、名前空間を示す文字列が入ります。VisualStudioによってプロジェクトごとに動的に設定されるマクロ変数です。
echo プリビルドスクリプトを開始します.
(
echo namespace $(RootNamespace)
echo {
echo public class MyConst
echo {
echo public const string BUILD_DATETIME = "%DATE% %TIME%";
echo }
echo }
) > "$(ProjectDir)myconst.cs"
echo プリビルドスクリプトが完了しました.
下記が、Form1 のタイトルバーに MyConst.BUILD_DATETIME という文字列を表示するコードです。
using System;
using System.Windows.Forms;
namespace aaa
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load( object sender, EventArgs e )
{
// ビルドされた時間をタイトルバーに表示する.
this.Text = MyConst.BUILD_DATETIME;
}
}
}
バッチファイルで動的に生成するテキストファイルには、日本語をはじめマルチバイト文字を利用しないでください。バッチコマンドで UTF-8 の出力設定を指定しないといけないので面倒です。
どうしてもコメントをいれたければ "// kore ha build jikan wo shimesu mojiretsu." のように英語で書いてください。