Visual Studio の Web プロジェクトにビルド前のイベントがあります (2012 年ですが、2010 年でも同じ動作です)。
プレビルドは、フォルダー内に一致する filename.html がある場合、すべての filename.aspx.vb ファイルを探す単純な exe を呼び出します。
その場合は、filename.html を文字列として読み取り (エスケープおよび縮小)、finename.aspx.vb にも文字列として挿入します。
myStribBuilder.Append("これは、外部ファイルからの html コードが移動する場所です")
保存した filename.html に変更を加え、Web サイトをコンパイルしてテストしたとします。filename.aspx を呼び出すときに、最新の変更を反映する必要があります。
ここで何が起こるか:
1 ページか 2 ページの非常に軽いプロジェクトであれば、うまくいきます。期待どおりにコンパイルされます。
その後、プロジェクトが大きくなり、機能しなくなります。つまり、コードは挿入されますが、期待どおりにコンパイルされません。Web サーバーで filename.aspx を更新すると、同じバージョンのままですが、VS で filename.aspx.vb を開くと、コードがそこにあります。2 番目のコンパイルは 100% 正常に動作します。
私はそれを受け入れることができますが、html ファイルの変更後にテスト目的で毎回 2 回コンパイルする必要があります。これは私には意味がありません。
「ビルド前」とは、ビルド前ルーチンを実行する前に、実際にコンパイル要求時にコードをキャッシュしているように見える場合の意味です。
では、コンパイルが始まる前に *.vb ファイルにコードを確実に挿入するにはどうすればよいでしょうか?