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 tüm derleme çıkışları, projeyle ayrılmış olarak 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. MyApp
Pivot 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 özelleştirilebilir. debug, debug_net8.0, release, release_linux-x64

Örnekler

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

Yol Açıklama
artifacts\bin\MyApp\debug komutunu çalıştırdığınızda dotnet buildbasit bir projenin derleme çıkış yolu.
artifacts\obj\MyApp\debug komutunu çalıştırdığınızda dotnet buildbasit bir projenin ara çıkış yolu.
artifacts\bin\MyApp\debug_net8.0 Çok hedefli bir projenin derlemesi için net8.0 derleme çıkış yolu.
artifacts\publish\MyApp\release_linux-x64 için linux-x64yayımlarken basit bir uygulamanın yayımlama yolu.
artifacts\package\MyApp\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 trueayarlayınUseArtifactsOutput.

    <PropertyGroup>
      <UseArtifactsOutput>true</UseArtifactsOutput>
    </PropertyGroup>
    
  • Özel çıkış konumu ayarlamak için değeri $(MSBuildThisFileDirectory)artifacts (veya klasör konumunun olmasını istediğiniz öğe) olan bir özellik ekleyinArtifactsPath. 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 atlanır. "pivot" klasörünün nasıl adlandırılıyor özelleştirmek için MSBuild özelliğini istediğiniz dizeye ayarlayın ArtifactsPivots . Örnek:

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