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

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.


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.


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.


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ś.


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!!!


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!


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.


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.


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.


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.


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


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!

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.