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 build basit bir projenin derleme çıkış yolu. |
artifacts\obj\MyApp\debug | komutunu çalıştırdığınızda dotnet build basit 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-x64 yayı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
true
ayarlayı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çerenArtifactsPath
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>