ビルドをクリーンする
ビルドをクリーンするとき、すべての中間ファイルと出力ファイルが削除され、プロジェクト ファイルとコンポーネント ファイルが残ります。 プロジェクト ファイルとコンポーネント ファイルから、中間ファイルと出力ファイルの新しいインスタンスをビルドできます。
出力項目のディレクトリを作成するには
既定では、プロジェクトのコンパイル時に作成される .exe ファイルは、プロジェクトおよびソース ファイルと同じディレクトリに置かされます。 ただし、一般的には、出力項目は別個のディレクトリに作成されます。
出力項目のディレクトリを作成するには
Property
要素を利用し、ディレクトリの場所と名前を定義します。 たとえば、プロジェクトおよびソースファイルを含むディレクトリに BuiltApp という名前のディレクトリを作成します。<builtdir>BuiltApp</builtdir>
ディレクトリが存在しない場合、MakeDir タスクを理使用してディレクトリを作成します。 たとえば次のような点です。
<MakeDir Directories = "$(builtdir)" Condition = "!Exists('$(builtdir)')" />
出力項目を削除する
中間ファイルと出力ファイルの新しいインスタンスを作成する前に、以前のインスタンスをすべて消去しておくことをお勧めします。 RemoveDir タスクを利用し、ディレクトリとそれに含まれるすべてのファイルとディレクトリをディスクから削除します。
ディレクトリとそのディレクトリに含まれるすべてのファイルを削除するには
RemoveDir
タスクを利用してディレクトリを削除します。 たとえば次のような点です。<RemoveDir Directories="$(builtdir)" />
例
次のコード例プロジェクトには、新しいターゲット、Clean
が含まれています。このターゲットは RemoveDir
タスクを使用し、ディレクトリとそのディレクトリに含まれるすべてのファイルを削除します。 この例ではまた、Compile
ターゲットは、ビルドのクリーン時に削除される出力項目に対して別個のディレクトリを作成します。
Compile
は既定のターゲットとして定義されます。そのため、別のターゲットを指定しない限り、自動的に使用されます。 コマンド ライン スイッチ -target を使用し、別のターゲットを指定します。 たとえば次のような点です。
msbuild <file name>.proj -target:Clean
-target スイッチは -t に短縮できます。また、複数のターゲットを指定できます。 たとえば、ターゲット Clean
を使用し、次にターゲット Compile
を使用するには、次のように入力します。
msbuild <file name>.proj -t:Clean;Compile
<Project DefaultTargets = "Compile"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003" >
<PropertyGroup>
<!-- Set the application name as a property -->
<name>HelloWorldCS</name>
<!-- Set the output folder as a property -->
<builtdir>BuiltApp</builtdir>
</PropertyGroup>
<ItemGroup>
<!-- Specify the inputs by type and file name -->
<CSFile Include = "consolehwcs1.cs"/>
</ItemGroup>
<Target Name = "Compile">
<!-- Check whether an output folder exists and create
one if necessary -->
<MakeDir Directories = "$(builtdir)"
Condition = "!Exists('$(builtdir)')" />
<!-- Run the Visual C# compiler -->
<CSC Sources = "@(CSFile)"
OutputAssembly = "$(BuiltDir)\$(appname).exe">
<Output TaskParameter = "OutputAssembly"
ItemName = "EXEFile" />
</CSC>
<!-- Log the file name of the output file -->
<Message Text="The output file is @(EXEFile)"/>
</Target>
<Target Name = "Clean">
<RemoveDir Directories="$(builtdir)" />
</Target>
</Project>