Pertanyaan Apa tujuan dari konfigurasi debug / rilis dalam Visual Studio 2008/2010 kompilasi ke folder yang berbeda?


Apa gunanya menyusun rakitan untuk memisahkan folder? Di pekerjaan saya, kami memiliki 50+ proyek yang hidup dengan beberapa solusi berbeda. Ketika proyek dalam solusi yang sama Anda dapat mengatur Referensi Proyek dan mengambil perakitan di \ debug atau \ folder rilis yang sesuai. Tapi ketika mengatur referensi eksternal (melalui Browse) dan Anda menunjuk secara eksplisit ke \ debug \ assebmly.dll atau \ release \ assembly.dll proyek referensi tidak akan mengambil "rilis" perakitan jika proyek yang direferensikan dikompilasi dalam mode rilis.

Saya mengerti bahwa biasanya proses build dapat menangani ini, tetapi dalam kasus di mana saya perlu mengkompilasi sebuah proyek dalam mode rilis di luar proses build ini berarti saya harus memeriksa semua referensi eksternal untuk memastikan mereka menunjuk ke \ folder rilis . Ini adalah sesuatu yang mudah dilewatkan - dan saya tidak ingin memikirkannya setiap saat. Jadi pikiran saya adalah untuk selalu mengkompilasi rakitan untuk proyek ke folder \ bin apakah konfigurasi debug atau rilis dipilih. Ada kontra untuk pendekatan ini?

Saya juga memiliki posting blog tentang topik ini di sini.


5
2017-10-15 14:39


asal


Jawaban:


Yah, itu sederhana, karena tidak menggunakan folder terpisah jauh lebih buruk. Anda akan membuat Release, mencari tahu ada yang salah, kembali ke Debug dan tidak dapatkan versi Debug aktual dari rakitan. Kecuali Anda secara eksplisit menggunakan Build + Clean terlebih dahulu. Sekarang Anda akan melakukan pertarungan pedang atau mengunjungi SO, melupakan mengapa Anda beralih kembali.

Berurusan dengan output proyek dari solusi lain juga lurus ke depan: selalu tambahkan referensi ke versi Rilis. Karena jika Anda perlu men-debug dan mengubah perakitan itu maka Anda akan menambahkan proyek ke solusi Anda saat ini.


3
2017-10-15 15:05



Bukan hanya binari, itu juga file perantara. Itulah mengapa perlu dikompilasi ke berbagai direktori.

Jika Anda ingin memiliki binari Anda dalam folder bin, kemudian ubah file output atau tambahkan a copy sebagai langkah pembuatan khusus. Saya memahami bahwa ini menambah ketidaknyamanan pada alur kerja Anda, tetapi Anda harus menyadari bahwa membangun folder yang sama secara default akan menjadi PITA yang sangat besar bagi banyak orang.

Juga, ketika menambahkan referensi ke proyek di luar solusi Anda, cobalah untuk menggunakan makro seperti $(ConfigurationName) dalam referensi Anda untuk secara otomatis memasukkan "Rilis" atau "Debug" di jalur Anda seperlunya. (Aku iri padamu karena hanya harus berurusan dengan dua konfigurasi default ...)

Dan kemudian, inilah ide lain: Proyek dapat hidup lebih dari satu solusi. Miliki solusi untuk setiap kombinasi proyek yang valid yang harus Anda bangun. Dengan cara ini Anda akan menggunakan fitur Ketergantungan Proyek dan akan selalu membuat versi terbaru solusi Anda dengan sekali klik.

HTH


3
2017-10-15 15:00



Jika Anda membangun semuanya ke dalam satu folder, beralih konfigurasi, dan kemudian melakukan solusi parsial (katakan, hanya dari komponen data Anda), Anda dapat dengan mudah berakhir dengan campuran debug dan rilis rakitan yang digunakan. Itu adalah Hal Buruk.

Dengan menyimpan bangunan di folder terpisah, Anda dapat memastikan bahwa semua rakitan dibangun dari konfigurasi yang sama.


0
2017-10-15 15:12