Proje dosyasının adına veya konumuna başvurma

Kendi özelliğinizi oluşturmak zorunda kalmadan proje dosyasının kendi içinde projenin adını veya konumunu kullanabilirsiniz. MSBuild, proje dosya adına ve projeyle ilgili diğer özelliklere başvuran ayrılmış özellikler sağlar. Ayrılmış özellikler hakkında daha fazla bilgi için bkz . MSBuild ayrılmış ve iyi bilinen özellikler.

Proje özelliklerini kullanma

MSBuild, proje dosyalarınızda her seferinde tanımlamadan kullanabileceğiniz bazı ayrılmış özellikler sağlar. Örneğin, ayrılmış özellik MSBuildProjectName proje dosya adına bir başvuru sağlar. Ayrılmış özellik MSBuildProjectDirectory , proje dosyası konumuna bir başvuru sağlar.

Proje özelliklerini kullanmak için

  • Herhangi bir özellikte olduğu gibi proje dosyasındaki özelliğine $() gösterimiyle başvurun. Örneğin:

    <CSC Sources = "@(CSFile)"
        OutputAssembly = "$(MSBuildProjectName).exe"/>
    </CSC>
    

    Ayrılmış özellik kullanmanın bir avantajı, proje dosya adında yapılan tüm değişikliklerin otomatik olarak birleştirilmiş olmasıdır. Projeyi bir sonraki derlemenizde, çıkış dosyası sizin için başka bir işlem gerekmeyecek şekilde yeni ada sahip olur.

    Dosya veya proje başvurularında özel karakterlerin kullanımı hakkında daha fazla bilgi için bkz . MSBuild özel karakterleri.

Dekont

Ayrılmış özellikler proje dosyasında yeniden tanımlanamaz.

Örnek 1

Aşağıdaki örnek proje dosyası, çıktının adını belirtmek için proje adına ayrılmış özellik olarak başvurur.

<Project xmlns="http://schemas.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>

Örnek 2

Aşağıdaki örnek proje dosyası, ayrılmış özelliğini kullanarak MSBuildProjectDirectory proje dosyası konumundaki bir dosyanın tam yolunu oluşturur.

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

    <!-- Build the path to a file in the root of the project -->
    <PropertyGroup>
        <NewFilePath>$([System.IO.Path]::Combine($(MSBuildProjectDirectory), `BuildInfo.txt`))</NewFilePath>
    </PropertyGroup>
</Project>

Örnek, statik .NET Framework yöntemini System.IO.Path.Combineçağırmak için Özellik işlevinin söz dizimini kullanır.