記事一覧

Visual Studio のビルドイベントを活用する 

 

  
目次     



  

Visual Studio のビルドイベントを活用しよう

ハロー、みなさん。エジソンです。 
最近は、PHPとC#を使って交互にプログラミングすることが多いです。

C#のIDEと言えば、何と言ってもVisual Studio一択!と言っても過言ではありません。Visual Studioでビルドする際に、便利なのがビルドイベントです。



任意のファイルをビルド結果に含める

アプリケーションによっては、iniファイルを実行ファイルと共に配布したかったりします。そんな場合には、対象ファイルのプロパティ設定を活用します。

「出力ディレクトリにコピー」という項目です。これを、「新しい場合はコピーする」または「常にコピーする」に設定しましょう。

以下は、Sample.iniファイルを例にしています。Sample.iniをソリューションエクスプローラーで選択しておき、プロパティビューで設定を変更します。

vs_build_event_1.png 

すると、ビルド後の出力フォルダに対象ファイルが出力されるようになります。

vs_build_event_2.png 



ビルドイベントを使って環境別にファイルを変えてみる

出力フォルダへのファイルコピーは、Visual Studioのファイルプロパティで設定可能ですが、DebugビルドとReleaseビルドの場合とで、コピーしたいファイルが異なる場合はどうしたら良いでしょうか?

これに対する、シンプルな解答は「ビルドの都度、手作業でコピーする…」ですが、手作業はミスの元。自動化されていると何かと嬉しいので、自動化してみます。

まず、環境別にファイルを用意します。以下のように、3つのファイルを用意してみました。

  • Sample.ini
  • Sample.ini.debug
  • Sample.ini.release

vs_build_event_3.png

一番上のファイルに対して、ファイルプロパティでコピーする設定にしておきます。このファイルをデフォルトでコピーされるファイルとしましょう。

そして、Debugビルド時のファイルは、Sample.ini.debug。Releaseビルドの場合は、Sample.ini.releaseとしましょう。これらの2つのファイルをビルド後に出力された Sample.ini ファイルに対して、それぞれのファイルで上書きしてあげれば良いでしょう。

まず、ビルドイベントを設定するには、プロジェクトを右クリックしプロパティを選択します。
ビルドイベントを選択します。

vs_build_event_4.png

ビルド後イベントのコマンドラインに以下を入力します。

リスト1
if "$(ConfigurationName)" == "Debug" (
    copy  /Y /V "$(ProjectDir)Sample.ini.debug" "$(ProjectDir)$(OutDir)Sample.ini"
)

if "$(ConfigurationName)" == "Release" (
    copy /Y /V "$(ProjectDir)Sample.ini.release" "$(ProjectDir)$(OutDir)Sample.ini"
)


※書いた後に気付きましたが、ファイルの接尾辞が $(ConfigurationName) と同じなので、if文で分ける必要は無いかもでした…(Windowsでは、ファイルパスの大文字と小文字が区別されないので…)。

「ビルド後の編集」ボタンを押下すると、画面が広々として入力しやすいです。
この画面ではマクロ変数も参照できます。マクロ列の該当項目をダブルクリックするか、選択した状態で挿入ボタンを押下すると、エディタにマクロ変数を挿入できます。

vs_build_event_5.png 



まとめ

このようにビルドイベントを活用することで、DebugビルドとReleaseビルドで設定ファイルを変更すると言った事も可能です。

工夫次第で便利に開発できるようになります。是非活用してみてください!
関連記事

このエントリーをはてなブックマークに追加

コメント

コメントの投稿

非公開コメント

プロフィール

EZOLABブログへようこそ。
EZOLABは、札幌のソフトウェア会社です。

http://ezolab.co.jp

ezolab