Aracılığıyla paylaş


Yapıt çıktı düzeni

.NET 8 ve sonraki sürümlerde, derleme çıkışları için çıkış yolunu ve klasör yapısını basitleştirme seçeneği vardır. Tüm projelerden gelen derleme çıktıları, projelere göre ayrılmış şekilde ortak bir konumda toplanır. Ortak bir konum, araçların çıkışları nerede bulacağını tahmin etmelerini kolaylaştırır.

Varsayılan olarak ortak konum, Directory.build.props dosyasının yanındaki artifacts adlı bir dizindir. Kök yapıtlar klasörünün altındaki klasör yapısı aşağıdaki gibidir:

📁 artifacts
    └──📂 <Type of output>
        └──📂 <Project name>
            └──📂 <Pivot>

Aşağıdaki tabloda, klasör yapısındaki her düzey için varsayılan değerler gösterilmektedir. Directory.build.props dosyasındaki özellikleri kullanarak değerleri ve varsayılan konumu geçersiz kılabilirsiniz.

Klasör düzeyi Açıklama Örnekler
Çıkış türü İkili dosyalar, ara/oluşturulan dosyalar, yayımlanan uygulamalar ve NuGet paketleri gibi derleme çıktılarının kategorileri. bin, obj, publish, package
Proje adı† Çıktıyı her projeye göre ayırır. Varsayılan olarak MSBuild proje adını kullanır. MSBuild özelliği kullanılarak ArtifactsProjectName. MyApp
Dönüm Noktası† Farklı yapılandırmalar, hedef çerçeveler ve çalışma zamanı tanımlayıcıları için bir projenin derlemeleri arasında ayrım yapar. Birden çok öğe gerekiyorsa, alt çizgi (_ ) ile birleştirilir. MSBuild özelliği kullanılarak ArtifactsPivots. debug, debug_net8.0, release, release_linux-x64

† Paket çıktı yolları için proje adı alt klasörü atlanır. Buna ek olarak, pivot alt klasörü yalnızca yapılandırmayı içerir.

Örnekler

Aşağıdaki tabloda, oluşturulabilecek yol örnekleri gösterilmektedir.

Yol Açıklama
artifacts\bin\MyApp\debug Basit bir projenin derleme çıkış yolu dotnet build komutunu çalıştırdığınızda.
artifacts\obj\MyApp\debug Basit bir projede dotnet build komutunu çalıştırdığınızda ara çıkış yolu.
artifacts\bin\MyApp\debug_net8.0 Çok hedefli bir projenin net8.0 yapısının çıkış yolu.
artifacts\publish\MyApp\release_linux-x64 Basit bir uygulamanın linux-x64 için yayımlandığı zaman yayımlama yolu.
artifacts\package\release Bir proje için .nupkg sürümünün oluşturulduğu klasör.

Yapılandırma

Merkezi çıkış yolu biçimini kabul etmek için Directory.Build.props dosyanıza aşağıdaki MSBuild özelliklerinden birini ekleyin:

  • Varsayılan çıkış konumunu kullanmak için özelliğini olarak UseArtifactsOutputayarlayıntrue.

    <PropertyGroup>
      <UseArtifactsOutput>true</UseArtifactsOutput>
    </PropertyGroup>
    
  • Özel bir çıkış konumu ayarlamak için ArtifactsPath adında bir özellik ekleyin ve değeri $(MSBuildThisFileDirectory)artifacts (veya klasör konumunu istediğiniz başka bir değer) olarak belirleyin. Henüz bir Directory.Build.props dosyanız yoksa, özelliğini içeren ArtifactsPath bir dosyayı otomatik olarak oluşturmak için aşağıdaki komutu çalıştırabilirsiniz:

    dotnet new buildprops --use-artifacts
    

    Oluşturulan dosya şuna benzer:

    <Project>
      <PropertyGroup>
        <ArtifactsPath>$(MSBuildThisFileDirectory)artifacts</ArtifactsPath>
      </PropertyGroup>
    </Project>
    

"Pivot" klasör adı varsayılan olarak hedef çerçeve takma adı (TFM), yapılandırma ve çalışma zamanı tanımlayıcısının (RID) bir bileşimidir. Mevcut olmayanlar ihmal edilir. "pivot" klasörünün nasıl adlandırılacağını özelleştirmek için ArtifactsPivots MSBuild özelliğini istediğiniz dizeye ayarlayın. Örnek:

<PropertyGroup>
  ...
  <ArtifactsPivots>$(ArtifactsPivots)_MyCustomPivot</ArtifactsPivots>
</PropertyGroup>

"Proje adı" klasör adı varsayılan olarak MSBuild proje adını kullanır. Bunu belirli bir proje için özelleştirmek için proje dosyasında MSBuild özelliğini ayarlayın ArtifactsProjectName . Örnek:

<PropertyGroup>
  <ArtifactsProjectName>CustomProjectName</ArtifactsProjectName>
</PropertyGroup>