Bagikan melalui


Tata letak keluaran artefak

Di .NET 8 dan versi yang lebih baru, ada opsi untuk menyederhanakan jalur output dan struktur folder untuk output build. Semua output build dari semua proyek dikumpulkan ke lokasi umum, dipisahkan berdasarkan proyek. Lokasi yang sering digunakan memudahkan perangkat dalam memprediksi lokasi untuk menemukan hasil keluaran.

Secara default, lokasi umum adalah direktori bernama artefak di samping file Directory.build.props . Struktur folder di bawah folder artifacts akar adalah sebagai berikut:

πŸ“ artifacts
    β””β”€β”€πŸ“‚ <Type of output>
        β””β”€β”€πŸ“‚ <Project name>
            β””β”€β”€πŸ“‚ <Pivot>

Tabel berikut ini memperlihatkan nilai default untuk setiap tingkat dalam struktur folder. Anda dapat mengambil alih nilai, serta lokasi default, menggunakan properti dalam file Directory.build.props .

Tingkat folder Deskripsi Contoh
Jenis output Kategori output build: biner, file menengah/yang dihasilkan, aplikasi yang diterbitkan, dan paket NuGet. bin, obj, publish, package
Nama proyek† Memisahkan output untuk setiap proyek. Secara default, namanya diatur ke nama proyek MSBuild. Dapat disesuaikan menggunakan ArtifactsProjectName properti MSBuild. MyApp
Pivot† Membedakan versi proyek untuk konfigurasi yang berbeda, kerangka kerja yang ditargetkan, dan pengidentifikasi runtime yang berbeda. Jika diperlukan beberapa elemen, elemen tersebut digabungkan oleh garis bawah (_). Dapat disesuaikan menggunakan ArtifactsPivots properti MSBuild. debug, debug_net8.0, release, release_linux-x64

† Subfolder nama proyek dihilangkan untuk jalur output paket. Selain itu, subfolder pivot hanya berisi konfigurasi.

Contoh

Tabel berikut ini memperlihatkan contoh jalur yang mungkin dibuat.

Jalur Deskripsi
artifacts\bin\MyApp\debug Jalur output build untuk proyek sederhana saat Anda menjalankan dotnet build.
artifacts\obj\MyApp\debug Jalur output perantara untuk proyek sederhana saat Anda menjalankan dotnet build.
artefak\bin\MyApp\debug_net8.0 Jalur output untuk build net8.0 dari proyek multi-target.
artifacts\publish\MyApp\release_linux-x64 Jalur penerbitan untuk aplikasi sederhana saat menerbitkan untuk linux-x64.
artefak\paket\rkemudahan Folder tempat .nupkg rilis dibuat untuk proyek.

Cara mengonfigurasi

Untuk ikut serta dalam format jalur output terpusat, tambahkan salah satu properti MSBuild berikut ke file Directory.Build.props Anda:

  • Untuk menggunakan lokasi output default, atur properti ke UseArtifactsOutputtrue.

    <PropertyGroup>
      <UseArtifactsOutput>true</UseArtifactsOutput>
    </PropertyGroup>
    
  • Untuk mengatur lokasi output kustom, tambahkan ArtifactsPath properti dengan nilai $(MSBuildThisFileDirectory)artifacts (atau apa pun yang Anda inginkan untuk lokasi folder). Jika Anda belum memiliki file Directory.Build.props , Anda dapat menjalankan perintah berikut untuk membuat file yang berisi ArtifactsPath properti secara otomatis:

    dotnet new buildprops --use-artifacts
    

    File yang dihasilkan terlihat mirip dengan ini:

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

Nama folder "pivot" secara default adalah kombinasi dari target framework moniker (TFM), konfigurasi, dan pengidentifikasi runtime (RID). Semua yang tidak ada dihilangkan. Untuk menyesuaikan bagaimana folder "pivot" dinamai, atur ArtifactsPivots properti MSBuild ke string yang Anda inginkan. Contohnya:

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

Nama folder "project name" secara default menggunakan nama proyek MSBuild. Untuk menyesuaikannya untuk proyek tertentu, atur ArtifactsProjectName properti MSBuild dalam file proyek. Contohnya:

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