2010-04-15T00:32:14の更新内容

programming/netfx2/MSBuild/index.wiki.txt

current previous
419,66 419,13
 
-ItemGroup要素を用いるとプロパティを宣言出来る
-ItemGroup要素を用いるとプロパティを宣言出来る
 
-ItemGroup要素の子要素の名前がそのままアイテム名となる
-ItemGroup要素の子要素の名前がそのままアイテム名となる
 
-アイテムは任意の名前で定義できる
-アイテムは任意の名前で定義できる
~
-アイテムの値を参照する場合は、「@(アイテム名)」とする
-アイテムの値を参照する場合は、「$(アイテム名)」とする
 
-Include属性でワイルドカードを指定した場合、カレントディレクトリにあるファイルのうち、ワイルドカードにマッチするファイルのみが指定される
-Include属性でワイルドカードを指定した場合、カレントディレクトリにあるファイルのうち、ワイルドカードにマッチするファイルのみが指定される
 
-Exclude属性を指定すると、ワイルドカードにマッチするファイルは除外される
-Exclude属性を指定すると、ワイルドカードにマッチするファイルは除外される
 
-Messageタスクで出力する際の区切り文字を変える場合は、アイテム名の後ろに使いたい区切り文字を指定する
-Messageタスクで出力する際の区切り文字を変える場合は、アイテム名の後ろに使いたい区切り文字を指定する
 

        

        
 

        

        
+
*タスク出力の取得 (Output)
+
Output要素を使った例(test.msbuild.xml)
+
#code(xml){{
+
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+

          
+
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
+
    DefaultTargets="Build">
+

          
+
    <Target Name="Build">
+
        <Delete Files="bar.txt">
+
            <Output TaskParameter="DeletedFiles" ItemName="FilesDeleted" />
+
        </Delete>
+
        <Delete Files="foo.txt">
+
            <Output TaskParameter="DeletedFiles" ItemName="FilesDeleted" />
+
        </Delete>
+
        <Touch Files="foo.txt;bar.txt;baz.txt" AlwaysCreate="True">
+
            <Output TaskParameter="TouchedFiles" ItemName="FilesUpdated" />
+
        </Touch>
+
        <Message Text="@(FilesDeleted, ', ')を削除しました。" />
+
        <Message Text="@(FilesUpdated, ', ')を更新しました。" />
+
    </Target>
+
</Project>
+
}}
+
実行結果は次の通り。
+
#prompt{{
+
D:\>msbuild test.msbuild.xml
+
Microsoft (R) Build Engine Version 3.5.30729.1
+
[Microsoft .NET Framework, Version 2.0.50727.3603]
+
Copyright (C) Microsoft Corporation 2007. All rights reserved.
+

          
+
2010/04/15 0:04:48 にビルドを開始しました。
+
ノード 0 上のプロジェクト "D:\test.msbuild.xml" (既定のターゲット)。
+
  ファイル "bar.txt" を削除しています。
+
  "AlwaysCreate" が指定されたため "foo.txt" を作成しています。
+
  "AlwaysCreate" が指定されたため "bar.txt" を作成しています。
+
  "baz.txt" のタッチ タスクを実行しています。
+
  bar.txt, foo.txtを削除しました。
+
  foo.txt, bar.txt, baz.txtを更新しました。
+
プロジェクト "D:\test.msbuild.xml" (既定のターゲット) のビルドが完了しました。
+

          
+

          
+
ビルドに成功しました。
+
    0 警告
+
    0 エラー
+

          
+
経過時間 00:00:00.10
+
}}
+
Output要素を用いると、タスクの出力をアイテムもしくはプロパティとして取得できる。
 

        

        
+
ここでの要点は下記の通り。
+
-タスクの要素内でOutput要素を記述すると、タスクの出力を取得できる
+
-Output要素のTaskParameter属性で出力する値を指定する
+
-Output要素のItemName属性で出力先のアイテム名を指定する
+
PropertyName属性でプロパティ名を指定することもできる
 

        

        
 
*Cscタスクを使ってC#ファイルをコンパイルする
*Cscタスクを使ってC#ファイルをコンパイルする
 
Cscタスクを用いると、cscコンパイラを使ってC#ソースファイルをコンパイルすることが出来る。 ここではいくつかのソースファイル、リソースファイルからWindows実行可能ファイルを生成するための例を示す。
Cscタスクを用いると、cscコンパイラを使ってC#ソースファイルをコンパイルすることが出来る。 ここではいくつかのソースファイル、リソースファイルからWindows実行可能ファイルを生成するための例を示す。