Projekt kopiowania programu Visual Studio

141

Chciałbym wykonać kopię mojego projektu. Wolałbym nie zaczynać tego od zera, dodając pliki i referencje itp. Pamiętaj, że nie mam na myśli kopiowania do wdrożenia. Tylko zwykła kopia.

Czy w VS jest do tego narzędzie? Używam VS 2008

sarsnake
źródło

Odpowiedzi:

144

Jeśli chcesz kopię, najszybszym sposobem na zrobienie tego byłoby zapisanie projektu. Następnie wykonaj kopię całej rzeczy w systemie plików. Wróć do programu Visual Studio i otwórz kopię. Stamtąd najprawdopodobniej zaleciłbym zmianę nazwy projektu / rozwiązania, aby nie mieć dwóch o tej samej nazwie, ale jest to najszybszy sposób na wykonanie kopii.

Mitchel Sellers
źródło
25
Co się w takim razie dzieje z ProjectGUID?
Lars Corneliussen
4
Nie zapomnij usunąć plików svn, jeśli masz jakieś (tak zrobiłem!) -> weblogs.asp.net/jgalloway/archive/2007/02/24/…
qbantek
51
Identyfikator GUID projektu jest aktualizowany automatycznie przez VS, jeśli inny projekt z tym samym identyfikatorem GUID istnieje w tym samym rozwiązaniu.
Sebastian Krysmański
3
Próbuję tego, ale nie zmienia to nazw przestrzeni nazw aplikacji. Nie to, czego szukałem.
Jason
3
PRZEWODNIK PROJEKTU NIEAKTUALIZOWANY AUTOMATYCZNIE PRZEZ VS w wersji Community 2017 15.8.4. W rzeczywistości, jak to może być, jeśli plik AssemblyInfo.cs jest pod kontrolą kodu źródłowego?
PeterVermont
134

Po prostu utwórz szablon ;

Z Twojego projektu wybierz: Projekt - Szablon eksportu

Kreator pozwoli Ci zdefiniować

  • Nazwa szablonu
  • Opis szablonu
  • Ikona
  • Podgląd obrazu

Następnie zamyka projekt w katalogu „Moje wyeksportowane szablony”. Masz również możliwość udostępnienia szablonu podczas tworzenia nowego projektu.

Kiedy użyjesz swojego szablonu do stworzenia nowego projektu, przestrzeń nazw będzie poprawna dla 'your_new_project_name' w każdym pliku, wszystkie odniesienia poprawne, wszystko perfecto :)

Możesz wysłać plik .zip do każdego, a oni muszą skopiować (nie rozpakować) plik .zip do katalogu Templates \ ProjectTemplates, aby również mogli go używać.

Zrobiłem szablon ASP.NET MVC z folderami, stroną układu, modelami widoków itp. Ułożonymi tak, jak lubię.

UWAGA:
Jeśli masz pusty folder w swoim projekcie, NIE BĘDZIE on dodany do szablonu, więc po prostu dodałem pustą klasę odpowiednią dla każdego folderu i przykładowy obraz dla folderu obrazów.

Shane
źródło
28
IMO, najlepsza odpowiedź.
fischgeek
14
W VS2017 szablon eksportu znajdował się w pozycji menu najwyższego poziomu projektu.
Choco
3
Jest to niezwykle przydatne, jak wcześniej o tym nie wiedziałem? Dzięki!
Aldarrion,
5
To powinna być wybrana odpowiedź. Bardzo łatwe! Ten proces powinien również skopiować go do folderu Templates \ ProjectTemplates, po prostu upewnij się. Musiałem ponownie uruchomić program Visual Studio, aby zobaczyć go w oknie dialogowym tworzenia projektu.
midoriha_senpai
3
Kiedy przyszedł czas na zaimportowanie szablonu w celu stworzenia nowego projektu, nie mogłem wymyślić, jak to zrobić. Okazało się, że musiałem użyć paska wyszukiwania w oknie dialogowym Nowy projekt, aby zlokalizować szablon.
Tawab Wakil
6

Myślę, że jeśli jest to coś, co często robisz, istnieje małe (niewolne) narzędzie, które obiecuje zrobić to za Ciebie: nie używałem go, więc nie jestem pewien, czy jest dobry:

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

Na CodePlex jest również ten projekt:

http://clone.codeplex.com/

Prawdopodobnie spróbuję projekt Codeplex, a jeśli to nie zadziała, ręcznie zmienię nazwę wszystkiego i edytuję plik sln.

cięty
źródło
Aplikacja Codeplex „Solution Clone” działa całkiem nieźle. Kopiuje i zmienia nazwy wszystkich plików rozwiązań i zachowuje wszystkie odniesienia. Jedyną rzeczą, jaką musiałem zrobić, było ponowne przypisanie go do nowego pliku projektu o zmienionej nazwie po otwarciu skopiowanego rozwiązania, a następnie zmiana nazwy zestawu i głównej przestrzeni nazw we właściwościach projektu. Było to jednak o wiele łatwiejsze niż robienie wszystkiego ręcznie.
Fütemire,
4

Zdecydowanie NIE ZALECA się w ogóle kopiować projektów, ponieważ niektóre pliki konfiguracyjne utworzone wewnętrznie, takie jak .csproj, .vspscc itp., Mogą (i najprawdopodobniej będą) wskazywać na odniesienia, które należą do lokalizacji poprzednich rozwiązań i innych ścieżek / lokalizacji w systemie lub TFS. Jeśli nie jesteś ekspertem w czytaniu tych plików i naprawianiu odniesień, nie próbuj kopiować projektów.

Możesz utworzyć szkielet projektu tego samego typu, który zamierzasz skopiować, co spowoduje utworzenie odpowiednich plików .csproj, .vspscc . Teraz możesz kopiować pliki klas, skrypty i inną zawartość z poprzedniego projektu, ponieważ nie będą one miały wpływu. Zapewni to płynną kompilację i kontrolę wersji (jeśli chcesz być tym zainteresowany)

Powiedziawszy to wszystko, pozwólcie, że podam wam metodę stopniowego kopiowania projektu:

  1. Przejdź do projektu, który chcesz skopiować w eksploratorze rozwiązań i kliknij prawym przyciskiem myszy .
  2. Teraz wybierz Otwórz folder w Eksploratorze plików (zakładając, że masz rozwiązanie zmapowane na ścieżkę lokalną na dysku).
  3. Wybierz projekty, które chcesz replikować jako całe foldery (wraz ze wszystkimi zależnościami, plik bin .vspscc, plik .csproj)
  4. Wklej je w żądanej lokalizacji (może to być ten sam folder rozwiązania lub nawet inny folder rozwiązania. Jeśli znajduje się w tym samym folderze rozwiązań, konieczna byłaby zmiana jego nazwy, również .csproj i innych plików wewnętrznych na nową nazwę ).
  5. Nie, wróć do programu Visual Studio, kliknij prawym przyciskiem myszy rozwiązanie> Dodaj> istniejący projekt ...
  6. Przeglądaj i wybierz plik projektu (plik .csproj) teraz z lokalizacji, w której go umieściłeś, i wybierz opcję „ otwórz
  7. Ten plik pojawia się teraz w eksploratorze rozwiązań, abyś mógł pracować.

Być może będziesz teraz musiał rozwiązać kilka błędów kompilacji, prawdopodobnie ze zduplikowanymi / brakującymi odniesieniami i innymi rzeczami, ale poza tym jest tak nieskazitelna w logice i strukturze, jak się spodziewałeś.

Vikram K.
źródło
2
Aktualizacja: najlepszą odpowiedzią od 2019 r. Jest ta poniżej autorstwa @Shane. Tworzenie szablonów VS to doskonały sposób na klonowanie projektów bez problemów z odwołaniami.
Vikram K,
3

Wykonuję następujące kroki i używam narzędzia programistycznego o nazwie Resharper , które jest niesamowite:

Więc,

  1. Skopiuj istniejący folder projektu do wybranego miejsca docelowego
  2. Przejdź do kontroli źródła i kliknij prawym przyciskiem myszy tylko do żądanego folderu głównego i wybierz „Dodaj elementy do folderu ...”. Następnie pojawi się kreator, który wybierze pliki do skopiowania (nie ma potrzeby korzystania z niektórych plików i kreator poprowadzi Cię z tego powodu domyślnie).
  3. Zmień nazwę pliku rozwiązania (* .sln)
  4. Zmień nazwy podprojektów, jeśli istnieją.
  5. Użyj narzędzia Resharper, aby zmienić nazwę powiązanej przestrzeni nazw (automatycznie wykonam brudną robotę z bezpieczeństwem). Alternatywnym sposobem jest ręczna zmiana wszystkich przestrzeni nazw z nową nazwą.
  6. Ta sama akcja z nazwami metod.
  7. Sprawdź właściwości rozwiązania, jeśli chcesz zmienić.

Otóż ​​to. Jesteś gotowy!!!

Giannis Grivas
źródło
1

Najlepszym sposobem jest stworzenie nowego projektu od podstaw, a następnie przejście do folderu z plikami projektu, które chcesz skopiować (projekt, formularz1, wszystko oprócz folderów). Zmień nazwy plików (z wyjątkiem plików form1), na przykład: Skopiowałem pliki Ch4Ex1 do mojego projektu Ch4Ex2, ale najpierw zmieniłem nazwy plików na Ch4Ex2. Skopiuj i wklej te pliki do Eksploratora rozwiązań dla nowego projektu w programie Visual Studio. Następnie po prostu nadpisz pliki i wszystko powinno być gotowe!

Stary wątek, ale mam nadzieję, że pomoże każdemu, kto szuka tej odpowiedzi!

Alperon
źródło
0

Mam projekt, w którym pliki źródłowe znajdują się w folderze poniżej folderu projektu. Kiedy skopiowałem folder projektu bez folderu źródłowego i otworzyłem skopiowany projekt, pliki źródłowe nie zniknęły, ale zostały znalezione w starej lokalizacji. Zamknąłem projekt, skopiowałem również folder źródłowy i ponownie otworzyłem projekt. Teraz projekt w magiczny sposób odwołuje się do skopiowanych plików źródłowych (zarówno nowa ścieżka pojawiła się po „zapisz jako”, jak i zmiana w pliku została zapisana w skopiowanej wersji).

Jest pewne zastrzeżenie: jeśli zarówno stary, jak i nowy folder projektu nie znajdują się poniżej używanego folderu biblioteki, wspomniana powyżej magia odrzuca również bezwzględne odniesienie do biblioteki i oczekuje jej pod tą samą względną ścieżką.

Próbowałem tego z VS Express 2012.

Rainald62
źródło
0

Moje rozwiązanie jest trochę inne - komputer, na którym znajdował się pakiet, umarł, więc musiałem go odtworzyć na innym komputerze.

To, co zrobiłem (w VS 2008), to otworzenie następujących plików w moim katalogu:

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

Kiedy to zrobiłem, wyskakujące okienko zapytało mnie, czy plik sln będzie nowym rozwiązaniem, a kiedy kliknąłem „tak”, wszystko działało idealnie.

Brian
źródło
0

Po wypróbowaniu powyższych rozwiązań i utworzeniu kopii dla projektów MVC

W przypadku projektów MVC zaktualizuj numery portów w pliku .csproj, możesz skorzystać z pomocy iis applicationhost.config, aby sprawdzić numery portów. Te same numery portów spowodują problem z ładowaniem zestawu w usługach IIS.

Ganesh Vellanki
źródło
0

Zgodnie z powyższą odpowiedzią Shane'a (która przy okazji działa świetnie)…

Na liście referencyjnej możesz napotkać mnóstwo żółtych trójkątów. Większość z nich można wyeliminować za pomocą Build->Clean Solutioni Build->Rebuild Solution.

Zdarzyło mi się mieć kilka odniesień do Google API, które były nieco bardziej uparte.

Próba ponownej instalacji pakietu NuGet w tej samej wersji nie działała.
Program Visual Studio uważa, że ​​jest już zainstalowany.

Aby obejść ten problem:
1: Zapisz oryginalną wersję.
2: Zainstaluj następną wyższą wersję ... a następnie odinstaluj ją.
3: Zainstaluj oryginalną wersję z kroku 1.

Chris Catignani
źródło
0

Używam Visual Studio 2013, gdzie Projekt> Szablon eksportu nie jest opcją. Oto, czego używam do klonowania projektu.

Z Twojego rozwiązania: Plik> Eksportuj szablon> wybierz projekt, z którego chcesz utworzyć szablon, zanotuj ścieżkę zapisu

Pobierz i zainstaluj SDK VS 2013 tutaj

Utwórz nowy projekt VSIX w obszarze Rozszerzalność

W oknie dialogowym VSIXManifest wybierz kartę Zasoby

Wypełnij pole tekstowe Autor

Wybierz „Szablon projektu” dla opcji Typ i Przeglądaj, aby dodać wyeksportowany szablon (zapisany w ścieżce zanotowanej w kroku 1)

Zapisz i skompiluj projekt VSIX. Przejdź do folderu ... / bin / Debug projektu VSIX i kliknij dwukrotnie, aby uruchomić plik .vsix

Uruchom nowe wystąpienie programu Visual Studio i powinieneś zobaczyć swój szablon w dowolnym typie projektu, jaki jest Twój szablon. Utwórz nowy projekt z szablonu

Będziesz musiał ponownie dodać wszelkie odniesienia dll

Smitty-Werben-Jager-Manjenson
źródło
0

Najłatwiejszym sposobem byłoby wyeksportowanie projektu jako szablonu i zapisanie go w domyślnej lokalizacji szablonu. Następnie skopiuj szablon do dokładnie tego samego katalogu w lokalizacji, do której chcesz go przenieść. Następnie otwórz Visual Studio w nowej lokalizacji, utwórz nowy projekt, a pojawi się monit o wyszukanie szablonu. Wyszukaj dowolną nazwę szablonu, wybierz ją i gotowe!

Firma Nyla Lauren
źródło