Proyek Visual Studio vs. solusi

Jawaban:

70

Solusi adalah wadah untuk proyek, dan melacak ketergantungan antar proyek.

pzr
sumber
128

Saya menemukan beberapa informasi yang hilang di jawaban lain (setidaknya untuk orang yang berasal dari IDE lain seperti, katakanlah, Eclipse). Mengatakan bahwa solusi adalah wadah untuk proyek hanyalah sebagian dari hal itu. Fitur konseptual dari proyek VS (apa yang menentukan 'perinciannya') adalah bahwa satu proyek menghasilkan satu keluaran : biasanya dapat dieksekusi atau pustaka (dll). Jadi, jika Anda akan membuat kode tiga executable yang menggunakan kode terkait, Anda akan membuat satu solusi dan setidaknya tiga proyek - mungkin lebih.

leonbloy.dll
sumber
2
Jangan lupakan proyek Kode Bersama yang dapat disertakan tanpa membuat rakitan sendiri.
AyCe
43

Hanya untuk menghasilkan metafora ..

Solusinya seperti rumah, proyek seperti kamar. Setiap kamar menyediakan sebagian fungsionalitas sedangkan rumah, wadah kamar, menyediakan sarana untuk menghubungkan kamar bersama dan mengaturnya dengan tepat.

Agak klise tapi saya membuatnya dengan cepat, jadi bersabarlah :)

Cody C
sumber
26

Itu tidak membantu bahwa Visual Studio tampaknya membuat segalanya lebih membingungkan. "Proyek Baru" sebenarnya membuat SOLUSI baru yang berisi proyek. "Open Project" sebenarnya membuka solusi yang berisi satu (atau banyak) proyek. (Menu file mengatakan "Buka Proyek / Solusi" tetapi ini benar-benar membuka solusi. Tidak ada "Tutup Proyek" hanya "Tutup Solusi" yang akurat.

Jadi, di VS Anda selalu bekerja dalam sebuah solusi. Banyak solusi yang hanya berisi satu proyek dan pengembang yang lebih baru cenderung menganggapnya sebagai hal yang sama. Namun Anda dapat menambahkan proyek lain menjadi solusi.

Chryses
sumber
Apa gunanya memiliki banyak proyek dalam satu solusi? Saya tidak mengerti ini ..
Liga
12

Jika ada yang memutuskan untuk menggulir sejauh ini ... Saya pikir dokumen MS melakukan pekerjaan yang cukup baik dalam menjelaskan perbedaannya. Saya telah menyalin menempel (dan menyusun ulang) bit yang relevan di sini:

Saat Anda membuat aplikasi, aplikasi, situs web, Aplikasi Web, skrip, plug-in, dll di Visual Studio, Anda mulai dengan sebuah proyek. Dalam pengertian logis, sebuah proyek berisi semua file kode sumber, ikon, gambar, file data dan apa pun yang akan dikompilasi menjadi program atau situs web yang dapat dieksekusi, atau dibutuhkan untuk melakukan kompilasi. Sebuah proyek juga berisi semua pengaturan kompilator dan file konfigurasi lain yang mungkin diperlukan oleh berbagai layanan atau komponen yang akan berkomunikasi dengan program Anda.

Anda tidak harus menggunakan solusi atau proyek jika Anda tidak mau. Anda cukup membuka file di Visual Studio dan mulai mengedit kode Anda.

Dalam arti harfiah, sebuah proyek adalah file XML ( .vbproj, .csproj, .vcxproj) yang mendefinisikan hirarki folder virtual bersama dengan jalur untuk semua item itu "berisi" dan semua pengaturan membangun.

Dalam Visual Studio, file proyek digunakan oleh Solution Explorer untuk menampilkan konten dan pengaturan proyek. Ketika Anda mengkompilasi proyek Anda, mesin MSBuild menggunakan file proyek untuk membuat file yang dapat dieksekusi. Anda juga dapat menyesuaikan proyek untuk menghasilkan jenis keluaran lainnya.

Proyek terkandung, dalam arti logis dan dalam sistem file, dalam solusi, yang mungkin berisi satu atau lebih proyek, bersama dengan membangun informasi, pengaturan jendela Visual Studio, dan file lain-lain yang tidak terkait dengan proyek apa pun. Secara harfiah, solusinya adalah file teks dengan format uniknya sendiri; umumnya tidak dimaksudkan untuk diedit dengan tangan.

Sebuah solusi memiliki .suofile terkait yang menyimpan pengaturan, preferensi dan informasi konfigurasi untuk setiap pengguna yang telah mengerjakan proyek tersebut.

jrahhali
sumber
7

Sebuah Solusi dapat memiliki banyak Proyek.

Solusi juga dapat menangani pengelolaan ketergantungan antara Proyek yang berbeda ... memastikan bahwa setiap Proyek dibangun dalam urutan yang sesuai agar Solusi akhir berfungsi.

Justin Niessner
sumber
3

Sebuah proyek berisi file yang dapat dieksekusi dan perpustakaan yang membentuk aplikasi atau komponen aplikasi.

Solusi adalah tempat penampung untuk proyek terkait secara logis yang membuat aplikasi. Misalnya, Anda dapat memiliki proyek terpisah untuk GUI aplikasi Anda, lapisan akses basis data, dan sebagainya. Proyek akan menjadi divisi khusus untuk fungsionalitas program Anda, dan solusinya akan menjadi payung yang menyatukan semuanya dalam satu aplikasi.

David
sumber
2

Solusi adalah wadah untuk proyek - Anda juga dapat menggunakannya untuk mengatur item yang digunakan di berbagai proyek terkait (dll bersama dan semacamnya).

Oded
sumber
2

Sebuah solusi adalah file teks yang dapat dibaca yang ekstensi .slndan memiliki konten terstruktur yang menggambarkan proyek yang dikandungnya. Sebuah proyek adalah dibaca XML file teks berformat yang ekstensi .vcxprojdan memiliki konten terstruktur sesuai dengan skema XML, serta yang tujuan utamanya adalah untuk mengandung daftar dari sumber kode nama file dan dependensi mereka atau referensi ke kode sumber proyek lain juga.

kebenaranadjustr
sumber
0

Solusi adalah wadah yang digunakan oleh Visual Studio untuk mengatur satu atau lebih proyek terkait. Ketika Anda membuka solusi di Visual Studio, itu akan secara otomatis memuat semua proyek yang ada di dalamnya.

Saat Anda membuat proyek baru di Visual Studio, secara otomatis membuat solusi untuk proyek rumah jika tidak ada solusi yang sudah terbuka.

Anda dapat mengatur ketergantungan proyek pada proyek lain dalam solusi. Proyek dependen dibangun setelah proyek tempat bergantung dibangun.

Untuk lebih jelasnya lihat - https://docs.microsoft.com/en-us/visualstudio/ide/quickstart-projects-solutions

Jika Anda berasal dari latar belakang Eclipse, Anda mungkin akan pergi ke jalur pembuatan proyek dan menambahkan ketergantungan pada proyek lain atau menambahkan jar eksternal. Di VS Anda dapat melakukannya dalam satu wadah yang disebut solusi di mana semua proyek terkait dikelompokkan bersama.

Misalnya. Katakanlah Anda membangun dan aplikasi android dan iOS di xamrin, akan ada beberapa kode dan sumber daya umum yang dapat masuk dalam proyek terpisah dan kemudian proyek Android dan iOS Anda dapat bergantung pada proyek kode umum ini. Anda juga dapat memiliki proyek untuk menguji proyek ini, dll.

Aniket Thakur
sumber