方法 : プロジェクト ファイルの名前または場所を参照する
プロジェクトの名前または場所については、独自にプロパティを作成しなくても、プロジェクト ファイル内で参照できます。MSBuild には、プロジェクト ファイルの名前やその他の関連するプロパティを参照する予約済みのプロパティが用意されています。予約済みのプロパティの詳細については、「MSBuild 予約済みのプロパティ」を参照してください。
MSBuildProjectName プロパティの使用
MSBuild には、プロジェクト ファイル内で使用できる予約済みのプロパティがいくつか用意されています。これらのプロパティについては、その都度定義する必要はありません。たとえば、予約済みのプロパティである MSBuildProjectName を使用して、プロジェクト ファイルの名前を参照できます。
MSBuildProjectName プロパティを使用するには
プロジェクト ファイル内でプロパティを参照するには、他のプロパティと同じように $() という表記を使用します。次に例を示します。
<CSC Sources = "@(CSFile)" OutputAssembly = "$(MSBuildProjectName).exe"/> </CSC>
予約済みのプロパティを使用することの利点として、プロジェクト ファイル名に変更を加えると、その変更が自動的に反映されるという点が挙げられます。特別な操作をしなくても、次回プロジェクトをビルドしたときに、出力ファイルが新しい名前で生成されます。
[!メモ]
予約済みのプロパティを、プロジェクト ファイルで再定義することはできません。
使用例
次の例に示すプロジェクト ファイルでは、プロジェクト名を予約済みのプロパティで参照し、出力ファイルの名前を指定しています。
<Project xmlns="http://scheams.microsoft.com/developer/msbuild/2003"
DefaultTargets = "Compile">
<!-- Specify the inputs -->
<ItemGroup>
<CSFile Include = "consolehwcs1.cs"/>
</ItemGroup>
<Target Name = "Compile">
<!-- Run the Visual C# compilation using
input files of type CSFile -->
<CSC Sources = "@(CSFile)"
OutputAssembly = "$(MSBuildProjectName).exe" >
<!-- Set the OutputAssembly attribute of the CSC task
to the name of the project -->
<Output
TaskParameter = "OutputAssembly"
ItemName = "EXEFile" />
</CSC>
<!-- Log the file name of the output file -->
<Message Text="The output file is @(EXEFile)"/>
</Target>
</Project>