Visual Studio Projesi ve Çözüm Karşılaştırması


Yanıtlar:


71

Çözüm, projeler için bir konteynerdir ve projeler arasındaki bağımlılıkları izler.


129

Diğer cevaplarda bazı eksik bilgiler buluyorum (en azından Eclipse gibi diğer IDE'lerden gelenler için). Çözümün projeler için bir kapsayıcı olduğunu söylemek işin yalnızca bir kısmıdır. Bir VS projesinin kavramsal özelliği ('tanecikliğini' belirleyen şey), bir projenin bir çıktı üretmesidir : tipik olarak bir çalıştırılabilir veya bir kitaplık (dll). Bu nedenle, ilgili kodu kullanan üç çalıştırılabilir dosyayı kodlayacaksanız, bir çözüm ve en az üç proje - muhtemelen daha fazlasını oluşturacaksınız.


2
Kendi başına montaj yapmadan dahil edilebilecek Paylaşımlı Kod projelerini unutmayın.
AyCe

43

Sadece bir metafor bulmak için ...

Çözüm bir ev gibidir, oda gibi bir proje. Her oda bir işlevsellik sağlarken, bir oda konteyneri olan ev, odaları birbirine bağlamak ve uygun şekilde düzenlemek için araçlar sağlar.

Biraz bayat ama anında uydurdum, bu yüzden bana katlan :)


26

Visual Studio'nun işleri daha kafa karıştırıcı hale getirmesine yardımcı olmuyor. "Yeni Proje" aslında bir proje içeren yeni bir ÇÖZÜM yaratır. "Açık Proje" aslında bir (veya daha fazla) proje içeren bir çözümü açar. (Dosya menüsü "Proje / Çözümü Aç" diyor ama gerçekten çözümleri açıyor. "Projeyi Kapat" sadece "Kapatma Çözümü" yoktur ve bu doğrudur.

Yani VS'de her zaman bir çözüm dahilinde çalışıyorsunuz. Çoğu çözüm yalnızca bir proje içerir ve daha yeni geliştiriciler muhtemelen bunları aynı şey olarak düşünür. Ancak çözüme başka projeler de ekleyebilirsiniz.


Tek bir çözümde birden fazla projeye sahip olmanın anlamı nedir? Bunu anlamıyorum ..
Liga

13

Herhangi birinin bu kadar aşağı kaydırmaya karar vermesi durumunda ... MS belgelerinin farklılıkları açıklamada oldukça iyi bir iş çıkardığını düşündüm . İlgili bitleri buraya kopyaladım (ve yeniden ifade ettim):

Visual Studio'da bir uygulama, uygulama, web sitesi, Web Uygulaması, komut dosyası, eklenti vb. Oluşturduğunuzda, bir projeyle başlarsınız. Mantıksal anlamda, bir proje, tüm kaynak kod dosyalarını, simgeleri, görüntüleri, veri dosyalarını ve yürütülebilir bir programda veya web sitesinde derlenecek veya derlemeyi gerçekleştirmek için gerekli olan diğer her şeyi içerir. Bir proje ayrıca, programınızın iletişim kuracağı çeşitli hizmetler veya bileşenler tarafından ihtiyaç duyulabilecek tüm derleyici ayarlarını ve diğer yapılandırma dosyalarını içerir.

İstemiyorsanız çözümleri veya projeleri kullanmak zorunda değilsiniz. Dosyaları Visual Studio'da açıp kodunuzu düzenlemeye başlayabilirsiniz.

Bir anlamda, bir proje (bir XML dosyasıdır .vbproj, .csproj,.vcxproj ) tüm öğelere yolları ile birlikte sanal bir klasör hiyerarşisini tanımlayan o ve tüm yapı ayarları "içerir".

Visual Studio'da proje dosyası, proje içeriğini ve ayarlarını görüntülemek için Solution Explorer tarafından kullanılır. Projenizi derlediğinizde, MSBuild motoru yürütülebilir dosyayı oluşturmak için proje dosyasını kullanır. Ayrıca, projeleri diğer çıktı türlerini üretecek şekilde özelleştirebilirsiniz.

Bir proje, mantıksal anlamda ve dosya sisteminde, bir veya daha fazla proje, derleme bilgileri, Visual Studio pencere ayarları ve herhangi bir projeyle ilişkili olmayan çeşitli dosyalar içeren bir çözüm içinde yer alır. Kelimenin tam anlamıyla çözüm, kendi benzersiz biçimine sahip bir metin dosyasıdır; genellikle elle düzeltilmesi amaçlanmaz.

Bir çözüm, .suoprojede çalışan her kullanıcı için ayarları, tercihleri ​​ve yapılandırma bilgilerini depolayan ilişkili bir dosyaya sahiptir.


7

Bir Çözüm birçok Projeye sahip olabilir.

Çözüm aynı zamanda farklı Projeleri arasındaki bağımlılıkları yönetebilir ... Nihai Çözümün çalışması için her Projenin uygun sırada İnşa edildiğinden emin olur.


3

Bir proje, bir uygulamanın veya bir uygulamanın bileşenini oluşturan yürütülebilir ve kitaplık dosyalarını içerir.

Çözüm, bir uygulamayı oluşturan mantıksal olarak ilgili projeler için bir yer tutucudur. Örneğin, uygulamanızın GUI'si, veritabanı erişim katmanı vb. İçin ayrı projeleriniz olabilir. Projeler, programınızın işlevselliği için belirli bölümler olacak ve çözüm, hepsini tek bir uygulama altında birleştiren bir şemsiye olacaktır.


2

Çözümler, projeler için kapsayıcılardır - bunları farklı ilgili projelerde (paylaşılan dll'ler ve benzeri) kullanılan öğeleri düzenlemek için de kullanabilirsiniz.


2

Bir çözüm olan uzantısıdır okunabilir bir metin dosyasıdır .slnve tanımlayan bir yapılandırılmış içeriğine sahip projeleri içerdiği söyledi. Bir proje , uzantısı XML şemasına göre yapılandırılmış bir içeriğe sahip olan ve birincil amacı, kaynak kodların dosya adlarının ve bunların bağımlılıklarının veya diğer projenin kaynak kodlarına referanslarının listelenmesini içeren okunabilir XML formatlı bir metin dosyasıdır .vcxproj.


0

Çözümler, bir veya daha fazla ilgili projeyi organize etmek için Visual Studio tarafından kullanılan kapsayıcılardır. Visual Studio'da bir çözüm açtığınızda, içerdiği tüm projeleri otomatik olarak yükler.

Visual Studio'da yeni bir proje oluşturduğunuzda, zaten açık bir çözüm yoksa projeyi barındırmak için otomatik olarak bir çözüm oluşturur.

Çözümdeki diğer projelere projelerin bağımlılıklarını ayarlayabilirsiniz. Bağımlı proje, bağlı olduğu proje inşa edildikten sonra inşa edilir.

Daha fazla ayrıntı için bakın - https://docs.microsoft.com/en-us/visualstudio/ide/quickstart-projects-solutions

Eclipse geçmişinden iseniz, muhtemelen bir projenin yolunu oluşturacak ve başka bir projeye bağımlılık ekleyeceksiniz veya harici bir kavanoz ekleyeceksiniz. VS'de bunu, ilgili tüm projelerin bir arada gruplandığı çözüm adı verilen tek bir kapta yapabilirsiniz.

Örneğin. Diyelim ki xamrin'de android ve iOS uygulaması oluşturuyorsunuz, ayrı bir projede gidebilecek bazı ortak kodlar ve kaynaklar olacak ve ardından android ve iOS projeleriniz bu ortak kod projesine bağlı olabilir. Ayrıca bu projeleri test etmek için projeleriniz olabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.