Visual Studio'da bir dizin yapısının tamamını “Varolan Öğe Ekleme” yi nasıl yaparım?


765

Karmaşık bir iç içe dizin yapısında bulunan herhangi bir C # projesi ile ilişkili olmayan dosyaları serbest duran bir dizi var.

Onları üzerinde çalıştığım bir ASP.NET web uygulamasında farklı bir dizine bu biçimde eklemek istiyorum; aynı yapıyı korurken. Bu nedenle, klasörü projemin hedef konumuna kopyaladım ve yalnızca bir önceki klasör hiyerarşisini kaybetmek için “mevcut öğeyi eklemeye” çalıştım.

Genellikle dizinleri elle yeniden oluşturdum, bire bir temelde kopyaladım ve sonra mevcut öğeleri ekledim. Bu durumda çok fazla dizin / öğe var.

Peki, Visual Studio 2008'de mevcut dizinleri ve dosyaları nasıl eklersiniz?


44
Bunun çoğu insan (ben dahil) için belirgin olmaması, Visual Studio hakkında üzücü bir vasiyettir.
Pete Alvin

22
@Pete Alvin Visual Studio ile ilgili birçok üzücü vasiyetim var ama şimdi diğer IDE'lerin bazılarıyla zaman geçirdim.
Freek Nortier

4
Visual studio mükemmel değil, hemen hemen her IDE kullandım. En iyisi ise. Eclipse bile yakın değil, Xcode muhtemelen yaklaşan tek kod.
user1127081

2
@ user1127081: Bunu ikinci olarak ayarlamalıyım. Visual Studio mükemmel olmaktan oldukça uzak, ama hemen hemen her geliştirme ve hedef işletim sistemi için hemen hemen her IDE'yi kullandım ve hepsi çok daha kötü. Ayrıca Xcode'un açıkça ve geri kalanların en iyisi olduğunu kabul etmeliyim, ancak sadece Xcode 3 ve Xcode 4 arasında çok şey onayladıktan sonra öyle oldu. Eclipse sadece bir kabus.
Kaiserludi

Yanıtlar:


737

Dosyaları / klasörleri Windows Gezgini'nden Çözüm Gezgini'ne sürükleyin. Hepsini ekleyecek. Windows Gezgini bir Kullanıcı Modu işlemi olduğundan, Visual Studio Yönetici Modundaysa bunun çalışmadığını unutmayın.


42
Bu benim için işe yaramıyor. Bana geçersiz bir bırakma hedefi simgesi veriyor. Aşağıdaki tüm dosyaları göster mükemmel olsa da
Cine

115
VS 2010'da, draggin klasörü aldıktan sonra projedeki Tüm Dosyaları Göster seçeneğini seçin. Dosyalar "hayalet" formunda bulunur, klasöre sağ tıklayın ve Projeye Ekle. Daha sonra eklenecekler
John Ptacek

10
@JohnPtacek: Bu bir projede çalışıyor, ancak çözümde değil.

2
Bu cevap VS2010 için geçerli değil (en azından anlayabildiğim kadarıyla). Tom'un 7/10/12'deki cevabı VS2010'da benim için en iyi çözümdü
BLSully

8
Görev yöneticisini kullanarak explorer.exe dosyasını öldürün, yönetici olarak başlatın ve ardından Yönetici olarak çalışıyor olsa bile Visual Studio'ya sürükleyip bırakabilirsiniz.
xander

545

Belirli bir proje için "Tüm Dosyaları Göster" seçeneğini etkinleştirin (görmek için "Yenile" düğmesine basmanız gerekebilir) **.

Projenizin bir parçası olmayan klasörler / dosyalar proje ağacında biraz daha hafif görünür .

Eklemek istediğiniz klasörleri / dosyaları sağ tıklayın ve "Projeye Dahil Et" i tıklayın . Projeye özyinelemeli olarak klasör / dosya ekleyecektir.

** Bu düğmeler mini Solution Explorer araç çubuğunda bulunur.

** Hata ayıklama modunda OLMADIĞINIZDAN emin olun.


2
Bu sadece proje dosyanızdan daha derin dosyalar için çalışıyor gibi görünüyor, eğer proje dosyanızı kendi başına bir klasörde tutarsanız, bu alışkanlık olmaz.
Danny Parker

28
Bu yalnızca bireysel projelerde çalışır, ancak bir çözüm içinde çalışmaz.

7
Duh ... dosya koyman gereken yer burasý deđil. Tabii ki kök klasörünüzün üzerindeki dosyaları bulamayacak.
Bluebaron

3
Bu yalnızca eklediğiniz klasörlerin proje klasörünüzde bulunmasını istediğinizde çalışır. Benim durumumda, başka bir yerde olmalarını istiyorum (projeler arasında paylaşılıyor). XCode'da, bir klasör yapısını herhangi bir konumdan proje yapısına sürüklemek, VS gibi düzleştirmek yerine klasör yapısını korur. Görünüşe göre VS'nin burada bir özelliği yok.
Mattijs

9
ipucu - çözümün değil, projenin seçildiğinden emin olun - o zaman hepsini gösterebilirsiniz!
niico

89

Solution Explorer'da:

  1. Tüm Dosyaları Göster'i tıklayın (Solution Explorer'ın sol üst köşesindeki ikinci simge).
  2. Eklemek istediğiniz klasörü bulun.
  3. Sağ tıklayın ve "Projeye Ekle" yi seçin

HTML editörleri ve üçüncü taraf dosya tarayıcıları gibi eklentileri yüklemek için bunu kullanıyorum.


16
Bu Brannon'un 4 yıl önceki cevabından ne farkı var?
ToolmakerSteve

7
Bu, bir Çözüm klasörü için özgün sorunu gidermez . Daha önce de ele alınmıştır.
user2864740

@ToolmakerSteve: Gant'ın 7 yıl önceki çözümüyle aynı olması farklı. stackoverflow.com/questions/392473/…
Veverke

Çakışan csproj dosyaları teslim edildiğinde ve tfs çakışmaları ve üzerine yazıldıklarında da yardımcı olduğu için bu çözümü şiddetle tavsiye ederim
John Demetriou

6
+1. Bu cevabı diğerlerinden daha yararlı buldum, çünkü (göreceli olarak) Tüm Dosyaları Göster'in bağlam menüsünde bir giriş değil , bir simge olduğunu açıkça ortaya koyuyor .

35

Sadece daha önce sunulan iki çözümden bahsetmek istiyorum,

  • Windows Gezgini'nden sürükleyip bırakın
  • Tüm Dosyaları Göster ve ardından projeye dahil et.

sorunun ne istediğini yapmayın:

Dizin yapısını korurken projeye dahil edin .

En azından benim durumumda (Windows 7'de C ++ / CLI projesi Visual Studio 2013).

Visual Studio'da, normal görünüme döndüğünüzde ( Tüm Dosyaları Göster değil ), eklediğiniz dosyaların tümü projenin en üst düzeyinde listelenir.

Evet, diskte hala bulundukları yerde oturuyorlar, ancak Solution Explorer'da gevşekler.

Çözüm Gezgini'nde dizin yapısını yeniden oluşturmak ve sonra doğru yerde Varolan Öğeleri Ekle yapmak dışında bir yol bulamadım .


Aynı davranışı görüyorum, VS2010, c ++.
Radim Cernej

Doğru, Visual Studio 2010 da. Benim için bir dizin yapısı olmayan dosyaları bile eklemez, sadece bu klasör yapısı içindeki ilk dosya ve herhangi bir alt klasör.
Jonas

2
Anlaşıldı, hala farklı. VS gibi popüler ve pahalı bir yazılımın böyle bir özelliğe nasıl sahip olamayacağını merak ediyorum. Çözüm kaşif ve pencere kaşif iki farklı ama benzer yapılara sahip olması oldukça kafa karıştırıcı olduğunu düşünüyorum ...
Janis

12
2015'i burada kullanarak; hala klasör yapısını korumaz. Sersemlemiş.
Toby Deshane

2015 Güncelleme 3'ü kullanarak Bannon ve Tom'un yaklaşımıyla başarılı oldular. Tüm iç içe klasörler beklendiği gibi geldi.
John Hatton

22

Bu açıklamalara dayanarak bunu hemen anlamadım ama sonunda nihayet tökezlediğim:

  1. "Tüm Dosyaları Göster" i açın - Solution Explorer araç çubuğunda bir simge var
  2. Windows Gezgini'ni (çözüm gezgini değil) kullanarak, dosyalarınızı bulunmasını istediğiniz dizin yapısına taşıyın
  3. Solution Explorer araç çubuğunda da "Yenile" yi tıklayın
  4. Taşıdığınız dosyaların, yerleştirdiğiniz Çözüm Gezgini ağaç yapısında "gölgeli" görünmesi gerekir
  5. Hayalet dosyalarınızı veya klasörlerinizi sağ tıklayın ve "Projeye Ekle" yi tıklayın. Bir klasörün tüm içeriği dahil edilecektir

2
Bu bir proje değil bir çözüm klasörü içindir.
StingyJack

Güncelleme: VS2019'da "refres" düğmesi yok
Liu Hao


13

Resim açıklamasını buraya girin

Kırmızı dairede yukarı tıklayın. Klasörünüz Solution Explorer'da görünecektir.

Klasörünüze sağ tıklayın -> Projeye ekle .


9

NPM'den "node_modules" gibi mevcut alt klasörleri ve yapıları otomatik olarak projenize eklemek için proje XML'nizi değiştirebilirsiniz:

Bu eski MSBuild / Visual Studio sürümleri içindir

<ItemGroup>
   <Item Include="$([System.IO.Directory]::GetFiles(&quot;$(MSBuildProjectDirectory)\node_modules&quot;,&quot;*&quot;,SearchOption.AllDirectories))"></Item>
</ItemGroup>

Geçerli MSBuild / Visual Studio sürümleri için:

Sadece xml düğümlerine koyun:

<Project>
</Project>

Bu durumda sadece $ (MSBuildProjectDirectory) \ node_modules klasörünüzün adını değiştirin.


Evet, bazen *. * Proj dosyasını elle düzenlemek sizi istediğiniz yere götürür.
Chris O

1
Yani birinin bunu toplu yapmak için bir eklenti yapabileceğini mi söylüyorsun? Çünkü bir xml'de onlarca klasörle bir klasör yapısını yeniden oluşturmuyorum
Spectraljump

Tam olarak aradığım şey
Vitaliy Kalinin

5

Dizin yapınızı proje dizininize koymanız gerekir. Ardından, Solution Explorer araç kutusunun üstündeki "Tüm Dosyaları Göster" simgesini tıklayın. Bundan sonra, eklenen dizin görünecektir. Daha sonra bu dizini seçmeniz, sağ tıklamanız ve "Projeye Ekle" yi seçmeniz gerekecektir.


1
Bu, kabul edilen cevabın önerdiği ve altındaki yorumlardan biridir.
Kev

4

Bu benim işim:

  1. Çözümü sağ tıklayın -> Ekle -> Mevcut Web Sitesi ...
  2. Web sitenizin bulunduğu klasörü seçin. Sadece sitenin kök klasörü.

Daha sonra çözümünüzdeki her şey klasörlerden dosyalara ve bu klasörlerin içindeki dosyalara eklenecektir.


4

Sonunda, Visual Studio 2017 kullanıcının tüm dizini tek bir tıklama ile içe aktarmasına izin verir. Visual Studio 2017, çözüm olarak kaydetmeye gerek kalmadan tüm klasörü açmaya izin veren yeni bir "Klasörü Aç " işlevine sahiptir . Kaynak kodu aşağıdaki yöntemler kullanılarak içe aktarılabilir.

  1. Menü Dosyası → * Klasör ( Ctrl+ Shift+ O)
  2. devenv.exe <source folder>

CMake projelerinin oluşturulmasını ve hata ayıklanmasını da destekler.

“Open Folder” ile C ++ kod tabanınızı Visual Studio'ya getirin


4

Artık Market'te OP'nin istediği şeyi yapan bir açık kaynak uzantısı var:

Klasörden Çözüm Klasörüne

klasörüne-to-çözüm-klasörüne

Tam olarak istediğinizi yapmazsa, kod kullanılabilir, böylece senaryoya uyacak şekilde değiştirebilirsiniz.

HTH


Uzantı, VS 15.9.13 2017 sürümünde benim için çalışmadı
Mateusz Migała

2

Keşfettiğim düzgün bir numara, "Mevcut ekle ..." ye giderseniz, klasörü açık iletişim kutusundan çözümünüze sürükleyebilmenizdir.

Visual Studio'mun Yönetici Modunda otomatik olarak açılmasını sağladım, bu yüzden bu işi yapmak için geri almak istemediğim için bu benim için iyi bir çözümdü.


1

Benim için işe yarayan, klasörü Visual Studio'ya sürükleyip klasörü sağ tıklayıp "Klasörü Dosya Gezgini'nde Aç" ı seçmekti. Sonra hepsini seçin ve Visual Studio'daki klasöre sürükleyin.


0

Windows 7'de aşağıdakileri yapabilirsiniz:

Projenize sağ tıklayın ve "Ekle-> Mevcut Öğe" yi seçin. Görüntülenen iletişim kutusunda, eklemek istediğiniz dizinin kök dizinine göz atın. Sağ üst köşede bir arama kutunuz var. Yazın *.csveya *.cppdosyaların türü Eklemek istediğiniz ne olursa olsun,. Arama bittikten sonra tüm dosyaları seçin, Ekle'yi tıklayın ve bir süre bekleyin ...


5
Bu dizin yapısını korumaz - sadece her şeyi ekle'yi tıkladığınız klasöre koyar.
Marc

0

Bunu yapmanın en temiz yolu, hedef klasörde yeni bir Sınıf Kitaplığı projesi oluşturmak ve tüm yapı çıktılarını başka bir yere yeniden yönlendirmektir. Hala bu klasörde oturan bir .csproj dosyası bırakır, ancak Visual Studio'da görmenize ve projenize hangi dosyaları dahil edeceğinizi seçmenize izin verir.


-3

Visual Studio'nun bunu yerel olarak desteklememesi can sıkıcıdır, ancak CMake, Visual Studio projesini bir çözüm olarak üretebilir.

Bunun dışında sadece Qt Creator kullanın. Daha sonra bir Visual Studio projesi verebilir.

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.