Visual Studio Kopyalama Projesi


141

Projemin bir kopyasını oluşturmak istiyorum. Dosyaları ve referansları, vb. Ekleyerek sıfırdan yapmaya başlamak istemiyorum. Lütfen dağıtım için kopya demek istemediğimi unutmayın. Sadece düz kopya.

VS'de bunu yapmak için bir araç var mı? VS 2008 kullanıyorum

Yanıtlar:


144

Bir kopyasını almak istiyorsanız, bunu yapmanın en hızlı yolu projeyi kaydetmek olacaktır. Ardından, Dosya Sistemindeki her şeyin bir kopyasını oluşturun. Visual Studio'ya geri dönün ve kopyayı açın. Oradan, muhtemelen aynı addan ikisine sahip olmamak için projeyi / çözümü yeniden adlandırmayı tavsiye ederim, ancak bu bir kopya oluşturmanın en hızlı yoludur.


25
Öyleyse ProjectGUID'e ne olur?
Lars Corneliussen

4
Varsa svn dosyalarını silmeyi unutmayın (yaptım!) -> weblogs.asp.net/jgalloway/archive/2007/02/24/…
qbantek

51
Aynı çözümde aynı GUID'ye sahip başka bir proje varsa, proje GUID'i VS tarafından otomatik olarak güncellenir.
Sebastian Krysmanski

3
Ben amy deniyorum, ama uygulama ad alanlarını yeniden adlandırmaz. Aradığım şey değil.
Jason

3
Topluluk 2017 Sürüm 15.8.4'te Proje KILAVUZU VS tarafından OTOMATİK OLARAK GÜNCELLENMEMEKTEDİR. Aslında, AssemblyInfo.cs kaynak kodu kontrolünde ise nasıl olabilir?
PeterVermont

134

Sadece bir şablon oluşturun ;

Proje seçiminizden: Proje - Dışa Aktarma Şablonu

Sihirbaz,

  • Şablon adı
  • Şablon Açıklaması
  • ikon
  • Önizleme resmi

Ardından projenizi 'Dışa Aktarılan Şablonlarım' dizinine sıkıştırır. Ayrıca, yeni bir proje oluştururken şablonunuzu kullanılabilir hale getirme seçeneğiniz de vardır.

Yeni bir proje oluşturmak için şablonunuzu kullandığınızda, ad alanı her dosyada 'sizin_adınız_adı_adı' için doğru olacaktır, tüm referanslar doğru, her şey mükemmeldir :)

.Zip dosyasını herkese gönderebilirsiniz ve onlar da kullanabilmeleri için .zip dosyasını Templates \ ProjectTemplates dizinine kopyalamalıdır (sıkıştırmayı açmamalıdır).

Klasörleri, mizanpaj sayfasını, viewmodels vb. Bir ASP.NET MVC şablonu hazırladım.

NOT:
Projenizde boş bir klasör varsa, şablona eklenmeyecektir, bu yüzden her bir klasöre uygun boş bir sınıf ve resimler klasörü için örnek bir resim ekledim.


28
IMO, en iyi cevap.
fischgeek

14
VS2017'de Dışa Aktarma Şablonu Proje üst düzey menü öğesinin altındaydı.
Choco

3
Bu inanılmaz derecede faydalı, bunu daha önce nasıl bilmiyordum? Teşekkürler!
Aldarrion

5
Seçilen cevap bu olmalıdır. Çok kolay! Bu işlemin Templates \ ProjectTemplates klasörünüze de kopyalanmış olması gerekir, emin olun. Proje oluşturma iletişim kutusunda görmek için Visual Studio'umu yeniden başlatmam gerekiyordu.
midoriha_senpai

3
Yeni bir proje oluşturmak için şablonu içe aktarmanın zamanı geldiğinde , bunu nasıl yapacağımı anlayamadım. Şablonu bulmak için Yeni Proje iletişim kutusundaki arama çubuğunu kullanmak zorunda kaldım.
Tawab Wakil

6

Sanırım bu sık sık yaptığınız bir şeyse, sizin için yapmayı vaat eden küçük (ücretsiz olmayan) bir yardımcı program var: Kullanmadım, bu yüzden ne kadar iyi olduğundan emin değilim:

http://www.kinook.com/CopyWiz/

CodePlex'te de bu proje var:

http://clone.codeplex.com/

Muhtemelen codeplex projesini bir deneyeceğim ve işe yaramazsa elle her şeyi yeniden adlandıracağım ve sln dosyasını düzenleyeceğim.


Codeplex uygulaması "Çözüm Klonu" oldukça iyi çalışıyor. Tüm çözüm dosyalarını kopyalar ve yeniden adlandırır ve tüm referansları saklar. Yapmam gereken tek şey, kopyalanan çözümü açtıktan sonra yeni yeniden adlandırılmış proje dosyasına yeniden yönlendirmek ve daha sonra proje özelliklerinde derleme adını ve kök ad alanını yeniden adlandırmaktı. Her şeyi manuel olarak yapmaktan çok daha kolaydı.
Fütemire

4

Oldukça olduğunu tavsiye edilmez bazı yapılandırma dosyaları içten gibi oluşmuş çünkü hiç projelerini kopyalamak için .csproj, .vspscc vb (ve büyük olasılıkla olacak) sisteminde önceki çözümlerin konumu ve diğer yollara ait referanslarına noktası / yerleri veya TFS. Bu dosyaları okuma ve referansları düzeltme konusunda uzman değilseniz, projeleri kopyalamaya çalışmayın.

Kopyalamak istediğiniz türde bir iskelet projesi oluşturabilirsiniz, bu uygun bir .csproj, .vspscc dosyaları oluşturur. Artık sınıf projelerini, komut dosyalarını ve diğer içeriği etkilemeyecekleri için önceki projeden kopyalayabilirsiniz. Bu, düzgün bir yapı ve sürüm kontrolü sağlayacaktır (bununla ilgilenmeyi seçerseniz)

Tüm bunları söyledikten sonra, size projeyi adım adım kopyalama yöntemi vereyim:

  1. Çözüm gezgininde kopyalamak istediğiniz projeye gidin ve sağ tıklayın .
  2. Şimdi ' Dosya Explorer'da Aç Klasör ' (Eğer diskte bir yerel yol eşlenen çözüm varsayarsak).
  3. Tüm klasörler olarak çoğaltmak istediğiniz Projeleri seçin (tüm bağımlılıklarla birlikte, bin .vspscc dosyası, .csproj dosyası)
  4. Bunları istediğiniz konuma yapıştırın (aynı çözüm klasörünüz veya başka bir çözüm klasörü olabilir. Aynı çözüm klasöründeyse, .csproj ve diğer dahili dosyaları da yeni adla yeniden adlandırmanız gerekir. ).
  5. Visual Studio'ya geri dönmeyin, Çözüm> Ekle> Mevcut Proje'ye sağ tıklayın ...
  6. Proje dosyasına (.csproj dosyası) şimdi yerleştirdiğiniz konumdan göz atın ve seçin ve ' '
  7. Bu dosya, artık çalışabilmeniz için çözüm gezgininde görünür.

Şimdi birkaç derleme hatasını muhtemelen çoğaltılmış / eksik referanslar ve şeyler ile çözmeniz gerekebilir, ancak aksi takdirde mantık ve yapıda beklediğiniz gibi bozulmamış olur.


2
Güncelleme: 2019'dan itibaren en iyi cevap, @Shane tarafından aşağıda verilen cevaptır. VS Templates yapmak, referans sorunları olmadan projeleri klonlamak için mükemmel bir yoldur.
Vikram K

3

Bu adımları izliyorum ve Resharper adlı geliştirme aracını kullanıyorum bu arada harika olan :

Yani,

  1. Kopya istediğiniz hedefe mevcut proje klasörü
  2. Kaynak kontrolüne gidin ve sadece istediğiniz kök klasöre sağ tıklayın ve "Klasöre öğe ekle ..." yi seçin. Ardından, kopyalanacak dosyaları seçmek için bir sihirbaz gelecektir (bazı dosyalara ve sihirbazı varsayılan olarak bu nedenle size yol gösterir).
  3. Çözüm dosyasının (* .sln) adını değiştirin
  4. Varsa alt projelerin adlarını değiştirin .
  5. Kullanım Resharper bağlayıcı değiştirmek için ad alanlarını adını (kirli işi güvenli bir şekilde otomatik olarak yapacağım). Alternatif yol, tüm ad alanlarını yeni adla el ile değiştirmektir.
  6. Yöntem adlarıyla aynı eylem.
  7. Değiştirmek istiyorsanız çözümün özelliklerini kontrol edin .

Bu kadar. Hazırsın!!!


1

En iyi yol aslında sıfırdan yeni bir Proje oluşturmak, daha sonra kopyalamak istediğiniz proje dosyaları ile klasöre gitmek (proje, form1, klasörler hariç her şey). Dosyaları yeniden adlandırın (form1 dosyaları hariç): Ch4Ex1 dosyalarını Ch4Ex2 projeme kopyaladım ancak önce dosyaları Ch4Ex2 olarak yeniden adlandırdım. Bu dosyaları kopyalayıp Visual Studio'daki yeni proje için Çözüm Gezgini'ne yapıştırın. Sonra sadece dosyaların üzerine yaz ve gitmek için iyi olmalısın!

Eski iplik ama umarım bu cevabı arayan herkese yardımcı olur!


0

Kaynak dosyaların proje klasörünün altındaki bir klasörde olduğu bir projem var. Proje klasörünü kaynak klasör olmadan kopyalayıp, kopyalanan projeyi açtığımda, kaynak dosyalar eksik değil, eski konumda bulundu. Projeyi kapattım, kaynak klasörü de kopyaladım ve projeyi yeniden açtım. Şimdi, proje kopyalanan kaynak dosyalarına sihirli bir şekilde atıfta bulunuyor (hem yeni yol "farklı kaydet" te gösterildi ve dosyadaki bir değişiklik kopyalanan versiyona kaydedildi).

Bir uyarı var: Hem eski hem de yeni proje klasörleri kullanılmış bir kütüphane klasörünün altında değilse, yukarıda belirtilen sihir de kütüphaneye mutlak referansı atar ve aynı göreli yol altında bekler.

Bunu VS Express 2012 ile denedim.


0

Benim çözümüm biraz farklı - paketin bulunduğu bilgisayar öldü ve başka bir bilgisayarda yeniden oluşturmak zorunda kaldım.

Yaptığım (VS 2008'de) dizinimde şu dosyaları açmaktı:

                  - <package name>.djproj
                  - <package name>.dtproj.user
                  - <package name>.dtxs
                  - <package name>.sln
                  - Package.dtsx

Bunu yaptığımda bir açılır pencere sln dosyasının yeni bir çözüm olup olmayacağını sordu ve 'evet'i tıkladığımda her şey mükemmel çalıştı.


0

Yukarıdaki çözümleri denedikten ve MVC projeleri için kopya oluşturduktan sonra

MVC projeleri için lütfen .csproj dosyasındaki port numaralarını güncelleyin, port numaralarını kontrol etmek için iis applicationhost.config'den yardım alabilirsiniz. Aynı bağlantı noktası numaraları IIS'de derleme yükleme sorununa neden olur.


0

Yukarıdaki Shane cevabını takiben (ki bu harika BTW çalışır)…

Referans listesinde bir miktar sarı üçgenle karşılaşabilirsiniz. Bunların çoğu a Build->Clean Solutionve ile ortadan kaldırılabilir Build->Rebuild Solution.

Biraz daha inatçı olan bazı Google API referanslarım oldu.

Aynı sürümün NuGet paketini yeniden yüklemeye çalışmak işe yaramadı.
Visual Studio zaten yüklü olduğunu düşünüyor.

Bu sorunu çözmek için:
1: Orijinal sürümü not edin.
2: Bir sonraki daha yüksek sürümü yükleyin ... sonra kaldırın.
3: 1. adımdaki orijinal sürümü yükleyin.


0

Visual Studio 2013 kullanıyorum, burada Project> Dışa Aktarma Şablonu bir seçenek değil. İşte bir projeyi klonlamak için kullandığım şey.

Çözümünüzden: Dosya> Şablonu Dışa Aktar> şablon oluşturmak için proje seçin, not kaydetme yolu

VS 2013 SDK'yı buradan indirin ve yükleyin

Genişletilebilirlik altında yeni VSIX projesi oluşturun

VSIXManifest İletişim Kutusundan Varlıklar sekmesini seçin

Yazar metin kutusunu doldurun

Dışa aktarılan şablonu eklemek için Yazım ve Gözat için "Proje Şablonu" nu seçin (1. adımda not ettiğiniz yola kaydedilir)

Kaydedin ve VSIX projesi oluşturun. VSIX projesinin ... / bin / Debug klasörüne gidin ve .vsix dosyasını çalıştırmak için çift tıklayın

Visual Studio'nun yeni bir örneğini başlatın ve şablonunuzun hangi proje türünde olduğunu görmelisiniz. Şablonunuzdan yeni bir proje oluşturun

Herhangi bir dll referansını yeniden eklemeniz gerekecek


0

Bunu yapmanın en kolay yolu, projeyi bir şablon olarak dışa aktarmak ve varsayılan şablon konumuna kaydetmek olacaktır. Ardından, şablonu taşımak istediğiniz konumdaki tam olarak aynı dizine kopyalayın. Bundan sonra, yeni konumda görsel stüdyo açın, yeni bir proje oluşturun ve bir şablon aramak için bir istem alacaksınız. Şablonu adlandırdığınız her şeyi arayın, seçin ve işiniz bitti!

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.