Bagikan melalui


Cara: Mengatur File Output Proyek untuk Build

Topik ini menjelaskan praktik terbaik untuk mengatur file output proyek. Kesalahan build dapat terjadi ketika Anda salah menyiapkan file output proyek. Topik ini juga menguraikan kelebihan dan kekurangan dari setiap alternatif untuk mengatur file output proyek Anda.

Mereferensikan Rakitan CLR

Untuk mereferensikan rakitan dengan #using

  1. Anda dapat mereferensikan rakitan langsung dari kode Anda dengan menggunakan arahan #using, seperti #using <System.Data.dll>. Untuk informasi selengkapnya, lihat Direktif #using.

    File yang ditentukan dapat berupa .dll, .exe, .netmodule, atau .obj, selama berada di MSIL. Komponen yang dirujuk dapat dibangun dalam bahasa apa pun. Dengan menggunakan opsi ini, Anda akan memiliki akses ke IntelliSense karena metadata akan diekstrak dari MSIL. File yang dimaksud harus berada di jalur untuk proyek; jika tidak, proyek tidak akan dikompilasi dan IntelliSense tidak akan tersedia. Cara mudah untuk menentukan apakah file berada di jalur adalah dengan mengklik kanan pada baris #using dan memilih perintah Buka dokumen . Anda akan diberi tahu jika file tidak dapat ditemukan.

    Jika Anda tidak ingin meletakkan jalur lengkap ke file, Anda dapat menggunakan opsi pengkompilasi /AI untuk mengedit jalur pencarian untuk referensi #using. Untuk informasi selengkapnya, lihat /AI (Tentukan Direktori Metadata).

Untuk mereferensikan rakitan dengan /FU

  1. Alih-alih merujuk rakitan langsung dari file kode seperti yang dijelaskan di atas, Anda dapat menggunakan opsi pengkompilasi /FU . Keuntungan dari metode ini adalah Anda tidak perlu menambahkan pernyataan #using terpisah ke setiap file yang mereferensikan rakitan tertentu.

    Untuk mengatur opsi ini, buka Halaman Properti untuk proyek. Perluas simpul Properti Konfigurasi, lalu perluas simpul C/C++ dan pilih Tingkat Lanjut. Tambahkan rakitan yang diinginkan di samping Paksa #using. Untuk informasi selengkapnya, lihat /FU (Nama File #using Paksa).

Untuk mereferensikan rakitan dengan Tambahkan Referensi Baru

  1. Ini adalah cara term mudah untuk menggunakan rakitan CLR. Pertama, pastikan proyek dikompilasi dengan opsi /clr compiler. Kemudian, klik kanan proyek dari Penjelajah Solusi dan pilih Tambahkan, Referensi. Dialog Halaman Properti akan muncul.

  2. Dari dialog Halaman Properti, pilih Tambahkan Referensi Baru. Dialog akan muncul mencantumkan semua .NET, COM, dan rakitan lain yang tersedia dalam proyek saat ini. Pilih rakitan yang diinginkan dan klik OK.

    Setelah referensi proyek diatur, dependensi yang sesuai ditangani secara otomatis. Selain itu, karena metadata adalah bagian dari rakitan, tidak perlu menambahkan file header atau membuat prototipe elemen yang digunakan dari rakitan terkelola.

Mereferensikan DLL Asli atau Pustaka Statis

Untuk mereferensikan DLL asli atau pustaka statis

  1. Referensikan file header yang sesuai dalam kode Anda menggunakan direktif #include. File header harus berada di jalur sertakan atau bagian dari proyek saat ini. Untuk informasi selengkapnya, lihat #include Directive (C/C++).

  2. Anda juga dapat mengatur dependensi proyek. Mengatur dependensi proyek menjamin dua hal. Pertama, ini memastikan bahwa proyek dibangun dalam urutan yang tepat sehingga proyek selalu dapat menemukan file dependen yang dibutuhkan. Kedua, secara implisit menambahkan direktori output proyek dependen ke jalur sehingga file dapat ditemukan dengan mudah pada waktu tautan.

  3. Untuk menyebarkan aplikasi, Anda harus menempatkan DLL di tempat yang sesuai. Bisa jadi salah satu dari yang berikut:

    1. Jalur yang sama dengan yang dapat dieksekusi.

    2. Di mana saja di jalur sistem ( variabel lingkungan jalur ).

    3. Di rakitan berdampingan. Untuk informasi selengkapnya, lihat Membangun Rakitan Berdampingan C/C++.

Bekerja dengan Beberapa Proyek

Secara default, proyek dibuat singgah semua file output dibuat dalam subdirektori direktori proyek. Direktori dinamai berdasarkan konfigurasi build (misalnya Debug atau Rilis). Agar proyek saudara saling merujuk, setiap proyek harus secara eksplisit menambahkan direktori output proyek lain ke jalurnya agar penautan berhasil. Ini dilakukan secara otomatis ketika Anda mengatur dependensi proyek. Namun, jika Anda tidak menggunakan dependensi, Anda harus menangani ini dengan hati-hati karena build bisa menjadi sangat sulit dikelola. Misalnya, ketika proyek memiliki konfigurasi Debug dan Rilis, dan mencakup pustaka eksternal dari proyek saudara, proyek tersebut harus menggunakan file pustaka yang berbeda tergantung pada konfigurasi mana yang sedang dibangun. Dengan demikian, pengkodean keras jalur-jalur ini bisa sulit.

Semua file output penting (seperti file executable, file linker inkremental, dan file PDB) disalin ke dalam direktori solusi umum. Dengan demikian, saat bekerja dengan solusi yang berisi sejumlah proyek C++ dengan konfigurasi yang setara, semua file output dipusatkan untuk penautan dan penyebaran yang disederhanakan. Anda dapat yakin bahwa aplikasi/pustaka mereka akan berfungsi seperti yang diharapkan jika mereka menyimpan file tersebut bersama-sama (karena file dijamin berada di jalur).

Lokasi file output dapat menjadi masalah utama saat menyebarkan ke lingkungan produksi. Saat menjalankan proyek di IDE, jalur ke pustaka yang disertakan belum tentu sama seperti di lingkungan produksi. Misalnya, jika Anda memiliki #using "../../lib/debug/mylib.dll" dalam kode Anda tetapi kemudian menyebarkan mylib.dll ke posisi relatif yang berbeda, aplikasi akan gagal pada runtime. Untuk mencegah hal ini, Anda harus menghindari penggunaan jalur relatif dalam pernyataan #include dalam kode Anda. Lebih baik memastikan bahwa file yang diperlukan berada di jalur build proyek dan juga memastikan bahwa file produksi yang sesuai ditempatkan dengan benar.

Cara menentukan ke mana file output pergi

  1. Lokasi pengaturan output proyek dapat ditemukan di Halaman Properti proyek. Perluas simpul di samping Properti Konfigurasi dan pilih Umum. Lokasi output ditentukan di samping Direktori Output. Untuk informasi lebih lanjut, lihat Halaman Properti Umum (Proyek).

Baca juga

Jenis proyek C++ di Visual Studio