Bagikan melalui


Mengubah direktori output build

Anda dapat menentukan lokasi output yang dihasilkan oleh proyek Anda berdasarkan per konfigurasi (untuk debug, rilis, atau keduanya). Dengan pengaturan default, folder output bervariasi menurut jenis proyek dan SDK, dengan beberapa proyek menggunakan subfolder khusus platform atau khusus kerangka kerja.

Visual Studio menyediakan properti yang memungkinkan Anda menempatkan output menengah dan akhir di folder kustom baik dengan menentukan jalur relatif terhadap folder proyek, atau jalur absolut di mana saja di sistem file. Selain pengaturan yang Anda tentukan di properti proyek Visual Studio, Anda juga dapat menyesuaikan output lebih lanjut dengan mengedit file proyek dan menggunakan kemampuan MSBuild dan .NET SDK untuk kontrol penuh atas semua aspek output proyek, baik untuk proyek individual atau di tingkat solusi untuk banyak proyek.

Mengubah direktori output build

  1. Bersihkan proyek atau solusi untuk menghapus file output yang ada (Solusi Build>Clean).

  2. Untuk membuka halaman properti proyek, klik kanan pada simpul proyek di Penjelajah Solusi dan pilih Properti.

  3. Pilih tab yang sesuai berdasarkan jenis proyek Anda:

    • Untuk C#, pilih tab Build .
    • Untuk Visual Basic, pilih tab Kompilasi .
    • Untuk C++ atau JavaScript, pilih tab Umum .
  4. Di menu drop-down konfigurasi di bagian atas, pilih konfigurasi yang lokasi file outputnya ingin Anda ubah (Debug, Rilis, atau Semua Konfigurasi).

  5. Temukan entri jalur output di halaman—berbeda tergantung pada jenis proyek Anda:

    • Jalur output untuk proyek C# dan JavaScript
    • Jalur output build untuk proyek Visual Basic
    • Direktori output untuk proyek Visual C++

    Ketik jalur untuk menghasilkan output ke (absolut, atau relatif terhadap direktori proyek akar), atau pilih Telusuri untuk menelusuri ke folder tersebut.

    Properti jalur output untuk proyek Visual Studio C#

    Catatan

    Beberapa proyek (.NET dan ASP.NET Core) secara default akan menyertakan versi kerangka kerja atau pengidentifikasi runtime dalam jalur build. Untuk mengubah ini, klik kanan simpul proyek di Penjelajah Solusi, pilih Edit File Proyek, dan tambahkan yang berikut ini:

    <PropertyGroup>
      <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
      <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
    </PropertyGroup>
    

Tip

Jika output tidak dihasilkan ke lokasi yang Anda tentukan, pastikan Anda membuat konfigurasi yang sesuai (misalnya, Debug atau Rilis) dengan memilihnya di bilah menu Visual Studio.

Buat pemilih konfigurasi di Visual Studio 2019.

Membangun ke direktori output umum

Secara default, Visual Studio membangun setiap proyek dalam solusi di foldernya sendiri di dalam solusi. Anda dapat mengubah jalur output build proyek Anda untuk memaksa semua output ditempatkan di folder yang sama.

Untuk menempatkan semua output solusi di direktori umum

  1. Bersihkan solusi untuk menghapus file output yang ada (solusi Build>Clean).

  2. Klik satu proyek dalam solusi.

  3. Pada menu Proyek, klik Properti.

  4. Di setiap proyek, tergantung pada jenisnya, pilih Kompilasi atau Bangun, dan atur jalur Output atau Jalur output dasar ke folder yang akan digunakan untuk semua proyek dalam solusi.

  5. Buka file proyek untuk proyek, dan tambahkan deklarasi properti berikut ke grup properti pertama.

    <PropertyGroup>
      <!-- existing property declarations are here -->
      <UseCommonOutputDirectory>true</UseCommonOutputDirectory>
    </PropertyGroup>
    

    Pengaturan UseCommonOutputDirectory untuk true memberi tahu Visual Studio dan mesin build dasarnya (MSBuild) bahwa Anda menempatkan beberapa output proyek di folder yang sama, sehingga MSBuild menghilangkan langkah penyalinan yang biasanya terjadi ketika proyek bergantung pada proyek lain.

  6. Ulangi langkah 2-5 untuk semua proyek dalam solusi. Anda dapat melewati beberapa proyek jika Anda memiliki beberapa proyek luar biasa yang seharusnya tidak menggunakan direktori output umum.

Untuk mengatur direktori output perantara untuk proyek (proyek.NET)

  1. Bersihkan proyek untuk menghapus file output yang ada.

  2. Buka file proyek.

  3. Tambahkan deklarasi properti berikut ke grup properti pertama.

    <PropertyGroup>
      <!-- existing property declarations are here -->
      <IntermediateOutputPath>path</IntermediateOutputPath>
    </PropertyGroup>
    

    Jalur relatif terhadap file proyek, atau Anda dapat menggunakan jalur absolut. Jika Anda ingin meletakkan nama proyek di jalur, Anda dapat mereferensikannya dengan menggunakan properti $(MSBuildProjectName)MSBuild , $(MSBuildProjectDirectory). Untuk properti lainnya yang dapat Anda gunakan, lihat properti MSBuild yang dicadangkan dan terkenal.

  4. Visual Studio masih membuat folder obj di bawah folder proyek saat Anda membuat, tetapi kosong. Anda dapat menghapusnya sebagai bagian dari proses build. Salah satu cara untuk melakukannya adalah dengan menambahkan peristiwa pasca-build untuk menjalankan perintah berikut:

    rd "$(ProjectDir)obj" /s /q
    

    Lihat Menentukan peristiwa build kustom.

Di Visual Studio 2022, ada antarmuka pengguna Project Designer yang berbeda, tergantung pada jenis proyek Anda. C# .NET Framework dan semua proyek Visual Basic menggunakan proyek warisan .NET Project Designer, tetapi proyek C# .NET Core (dan .NET 5 dan yang lebih baru) menggunakan .NET Project Designer saat ini. Proyek C++ menggunakan antarmuka pengguna halaman properti mereka sendiri. Langkah-langkah di bagian ini bergantung pada Perancang Proyek apa yang Anda gunakan.

Mengubah direktori output build

Prosedur ini berlaku untuk proyek C# di Visual Studio 2022 yang menargetkan .NET Core atau .NET 5 dan yang lebih baru.

  1. Bersihkan proyek atau solusi untuk menghapus file output yang ada (Solusi Build>Clean).

  2. Klik kanan pada simpul proyek di Penjelajah Solusi dan pilih Properti.

  3. Perluas bagian Build dan gulir ke bawah ke subbagian Output .

  4. Temukan jalur output Dasar untuk C#, dan ketik jalur untuk menghasilkan output ke (absolut atau relatif terhadap direktori proyek akar), atau pilih Telusuri untuk menelusuri ke folder tersebut sebagai gantinya. Perhatikan bahwa nama konfigurasi ditambahkan ke jalur output dasar untuk menghasilkan jalur output aktual.

    Cuplikan layar yang memperlihatkan properti Jalur output untuk proyek .NET Core C#.

    Catatan

    Beberapa proyek (.NET dan ASP.NET Core) secara default akan menyertakan versi kerangka kerja atau pengidentifikasi runtime di jalur output akhir. Untuk mengubah ini, klik kanan simpul proyek di Penjelajah Solusi, pilih Edit File Proyek, dan tambahkan yang berikut ini:

    <PropertyGroup>
      <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
      <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
    </PropertyGroup>
    

Membangun ke direktori output umum

Secara default, Visual Studio membangun setiap proyek dalam solusi di foldernya sendiri di dalam solusi. Anda dapat mengubah jalur output build proyek Anda untuk memaksa semua output ditempatkan di folder yang sama.

  1. Bersihkan solusi untuk menghapus file output yang ada (solusi Build>Clean).

  2. Klik satu proyek dalam solusi.

  3. Pada menu Proyek, klik Properti.

  4. Di setiap proyek, tergantung pada jenisnya, pilih Kompilasi atau Bangun, dan atur jalur Output atau Jalur output dasar ke folder yang akan digunakan untuk semua proyek dalam solusi.

  5. Buka file proyek untuk proyek, dan tambahkan deklarasi properti berikut ke grup properti pertama.

    <PropertyGroup>
      <!-- existing property declarations are here -->
      <UseCommonOutputDirectory>true</UseCommonOutputDirectory>
    </PropertyGroup>
    

    Pengaturan UseCommonOutputDirectory untuk true memberi tahu Visual Studio dan mesin build dasarnya (MSBuild) bahwa Anda menempatkan beberapa output proyek di folder yang sama, sehingga MSBuild menghilangkan langkah penyalinan yang biasanya terjadi ketika proyek bergantung pada proyek lain.

  6. Ulangi langkah 2-5 untuk semua proyek dalam solusi. Anda dapat melewati beberapa proyek jika Anda memiliki beberapa proyek luar biasa yang seharusnya tidak menggunakan direktori output umum.

Tip

Jika output tidak dihasilkan ke lokasi yang Anda tentukan, pastikan Anda membuat konfigurasi yang sesuai (misalnya, Debug atau Rilis) dengan memilihnya di bilah menu Visual Studio.

Cuplikan layar pemilih konfigurasi Build di Visual Studio 2022.

Mengatur direktori output perantara untuk proyek

Prosedur ini berlaku untuk proyek C# di Visual Studio 2022 yang menargetkan .NET Core atau .NET 5 dan yang lebih baru.

  1. Bersihkan proyek untuk menghapus file output yang ada.

  2. Buka file proyek.

  3. Tambahkan deklarasi properti berikut ke grup properti pertama.

    <PropertyGroup>
      <!-- existing property declarations are here -->
      <IntermediateOutputPath>path</IntermediateOutputPath>
    </PropertyGroup>
    

    Jalur relatif terhadap file proyek, atau Anda dapat menggunakan jalur absolut. Jika Anda ingin meletakkan nama proyek di jalur, Anda dapat mereferensikannya dengan menggunakan properti $(MSBuildProjectName)MSBuild , $(MSBuildProjectDirectory). Untuk properti lainnya yang dapat Anda gunakan, lihat properti MSBuild yang dicadangkan dan terkenal.

  4. Visual Studio masih membuat folder obj di bawah folder proyek saat Anda membuat, tetapi kosong. Anda dapat menghapusnya sebagai bagian dari proses build. Salah satu cara untuk melakukannya adalah dengan menambahkan peristiwa pasca-build untuk menjalankan perintah berikut:

    rd "$(ProjectDir)obj" /s /q
    

    Lihat Menentukan peristiwa build kustom.

Gunakan Directory.Build.props untuk mengatur direktori output

Jika Anda memiliki sejumlah besar proyek, dan Anda ingin mengubah folder output untuk semuanya, itu akan melelahkan dan rentan terhadap kesalahan untuk mengubah masing-masing proyek menggunakan metode yang dijelaskan sebelumnya dalam artikel ini. Dalam kasus seperti itu, Anda dapat membuat file di folder solusi, Directory.Build.props, untuk mengatur properti MSBuild yang sesuai di satu tempat, untuk diterapkan ke semua proyek dalam solusi. Dengan menempatkan file dengan nama khusus ini di folder induk dari semua proyek yang ingin Anda terpengaruh, Anda dapat dengan mudah mempertahankan penyesuaian di satu tempat dan memudahkan untuk mengubah nilai. Lihat Mengkustomisasi build menurut folder.

Menggunakan artefak untuk mengatur output build

Untuk proyek .NET 8, Anda dapat menggunakan fungsionalitas artefak untuk mengatur output dengan cara yang sangat dapat disesuaikan dan fleksibel. Lihat Tata letak output Artefak.