Właściwy sposób zmiany nazwy rozwiązania (i katalogów) w Visual Studio

415

Mam raczej zaangażowane rozwiązanie Visual Studio (2010, ale nie powinno to mieć znaczenia), że muszę zmienić nazwę.

Chcę zmienić nazwy folderów, aby pasowały do ​​nowej nazwy rozwiązania, ale nie mogę znaleźć sposobu, aby automatycznie zmienić nazwy folderów, a przeglądanie każdego pliku projektu będzie bolesne.

Czy istnieje oficjalny sposób to zrobić? Alternatywnie (i znacznie mniej korzystnie), czy istnieją bezpłatne narzędzia do osiągnięcia tego?

David Pfeffer
źródło
13
Jak to jest duplikat? Prosi o zmianę nazwy rozwiązania, a nie projektu!
Viking,

Odpowiedzi:

375

Ręcznie edytuj plik .sln

Ta metoda ma całkowicie na celu zmianę nazwy katalogu projektu, tak jak jest to wyświetlane w Eksploratorze Windows.

Ta metoda nie ma problemów z poniższą metodą usuwania / dodawania pliku projektu (znikają odniesienia), ale może powodować problemy, jeśli projekt jest pod kontrolą źródła (patrz uwagi poniżej). Właśnie dlatego krok 2 (tworzenie kopii zapasowych) jest tak ważny.

  1. Zamknij Visual Studio.
  2. Utwórz kopię zapasową pliku .sln (zawsze możesz przywrócić).
  3. Wyobraź sobie, że chcesz zmienić nazwę katalogu Project1na Project2.
  4. Jeśli nie korzystasz z kontroli źródła, zmień nazwę folderu na z Project1za Project2pomocą Eksploratora Windows.
  5. Jeśli korzystasz z kontroli źródła, zmień nazwę folderu z Project1na Project2na funkcje dostarczone przez kontrolę źródła. To zachowuje historię pliku. Na przykład TortoiseSVNklikając prawym przyciskiem myszy plik, wybierz TortoiseSVN .. Rename.
  6. W pliku .sln dokonaj edycji wszystkich instancji Project1be Project2, używając edytora tekstu, takiego jak NotePad .
  7. Uruchom ponownie program Visual Studio, a wszystko będzie działać jak poprzednio, ale z projektem w innym katalogu.

Możesz także zobaczyć ręczną zmianę nazwy rozwiązania lub opublikować opis tego ręcznego procesu .

Zalety

  • Możesz dopasować katalog w Eksploratorze Windows do nazwy projektu w rozwiązaniu.
  • Ta metoda nie usuwa żadnych odniesień z innych projektów do tego pliku (przewaga nad metodą usuwania / dodawania pliku projektu , patrz moja inna odpowiedź poniżej).

Ostrzeżenia

  • Ważne jest, aby przed zmianą nazwy utworzyć kopię zapasową wszystkiego w pliku .zip, ponieważ ta metoda może powodować problemy z kontrolą źródła.
  • Jeśli projekt jest pod kontrolą źródła, może powodować problemy, jeśli zmienisz nazwę plików lub katalogów poza kontrolą źródła (za pomocą Eksploratora Windows). Jeśli to możliwe, lepiej zmienić nazwę pliku za pomocą samej struktury kontroli źródła , aby zachować historię tego pliku (sprawdź menu kontekstowe po kliknięciu prawym przyciskiem myszy - może mieć funkcję zmiany nazwy pliku).

Aktualizacja 02.02.2014

ReSharper dodał zautomatyzowaną metodę osiągnięcia tego samego wyniku, co metoda ręczna powyżej. Jeśli przestrzeń nazw jest podkreślona kręconą niebieską linią, kliknij ikonę piramidy działania, aby:

  • Zmień nazwę przestrzeni nazw, aby pasowała do nazwy katalogu w Eksploratorze Windows, lub;
  • Zmień nazwę katalogu w Eksploratorze Windows, aby pasował do przestrzeni nazw.

W drugim przypadku ostatnie słowo określa nową nazwę katalogu w Eksploratorze Windows, np. Jeśli zmienimy przestrzeń nazw na ViewModel2, zaproponuje przeniesienie pliku do folderu ViewModel2.

Jednak niekoniecznie zaktualizuje to pliki w kontroli źródła, więc może być konieczne użycie metody ręcznej.

wprowadź opis zdjęcia tutaj

Aktualizacja 31.01.2018

Testowane z Visual Studio 2008, 2010, 2012, 2013, 2015, 2017 Aktualizacja 1, 2, 3, 4, 5.

Aktualizacja 2020-05-02

Testowane z Visual Studio 2019.

Contango
źródło
2
Uwaga: nawet z VS2012 konieczne jest ponowne uruchomienie, ponieważ w przeciwnym razie może się zdezorientować i
pojawią
1
„Jeśli masz kontrolę nad źródłami, utracisz historię pliku”, jest to dla nas poważna wada (audyt itp.) Czy istnieją sugerowane trasy przy zachowaniu historii?
dougajmcdonald
23
Visual Studio to tak potężny program, ale ta funkcja nie jest uwzględniona? wow ..
Luca Steeb,
2
Nawet po zastosowaniu rozwiązania opisanego przez @Contango wciąż otrzymywałem błąd: atrybut OwinStartup wykryty w asemblerze ... nowa nazwa uruchamiania, która była w konflikcie ze starą nazwą. Przejrzałem foldery obj i bin i usunąłem dowolny plik o starej nazwie, pozostawiając wszystko inne nienaruszone. Zrestartowałem vs z moim nowo nazwanym projektem i działało jak urok! Podziękować!
nocturns2
2
@LucaSteeb Yup, podobno w 2012 roku było około 50 milionów linii kodu. #monolithic
Chiramisu,
158

Oto kroki, które należy wykonać, aby zmienić nazwę rozwiązania:

  1. W Solution Explorer kliknij projekt prawym przyciskiem myszy, wybierz Zmień nazwę i wprowadź nową nazwę.
  2. W Solution Explorer kliknij projekt prawym przyciskiem myszy i wybierz Właściwości. Na karcie Aplikacja zmień ustawienia „Nazwa zestawu” i „Domyślna przestrzeń nazw”.
  3. W głównym pliku cs (lub dowolnym innym pliku kodu) zmień nazwę deklaracji przestrzeni nazw, aby użyć nowej nazwy. W tym celu kliknij prawym przyciskiem myszy przestrzeń nazw i wybierz Refaktoryzuj> Zmień nazwę, wprowadź nową nazwę. Na przykład: namespace WindowsFormsApplication1
  4. Zmień AssemblyTitle i AssemblyProduct we właściwościach / AssemblyInfo.cs.

    [assembly: AssemblyTitle("New Name Here")]
    [assembly: AssemblyDescription("")]
    [assembly: AssemblyConfiguration("")]
    [assembly: AssemblyCompany("")]
    [assembly: AssemblyProduct("New Name Here")]
    [assembly: AssemblyCopyright("Copyright ©  2013")]
    [assembly: AssemblyTrademark("")]
    [assembly: AssemblyCulture("")]
    
  5. Usuń katalogi bin i obj fizycznie.

  6. Zmień nazwę katalogu fizycznego folderu projektu.

  7. Otwórz plik SLN (w notatniku lub dowolnym edytorze) i zmień ścieżkę do projektu.

  8. Oczyść i przebuduj projekt.

Zaheer Ahmed
źródło
1
To doskonale działa! Ale musisz zarządzać Datasetręcznie (jeśli dołączyłeś do swojego projektu).
Sujith HS
2
Pracuje! Musiałem także zmienić nazwę plików .sln i .suo. I odkryłem, że krok 4 został już wykonany przez jeden z poprzednich kroków w moim VS 2010
poprawki
3
Jestem trochę zdezorientowany, czy odwołujesz się do Rozwiązania lub Projektu w kroku 1. Chcę zmienić nazwę obu, każdy z inną nazwą. Jaka byłaby nowa przestrzeń nazw, nowa nazwa rozwiązania lub nazwa projektu? Dzięki za wyjaśnienie mi tego.
Alan Fisher
1
To również działało dla mnie (przy użyciu VS2013), ale pominęło ścieżki projektu w \Packages\repositories.configpliku.
Ted
1
Przed próbą ponownego otwarcia rozwiązania użyłem narzędzia wyszukiwania Agent Ransack do przeszukania wszystkich plików i folderów w celu znalezienia odniesienia do poprzedniej nazwy rozwiązania / projektu i ich poprawienia. Musiałem to zrobić w kilku miejscach.
Andy G
31

Operacje Zmień nazwę w Visual Studio zmieniają tylko nazwę pliku, tj. Dla projektu, * .prj i dla rozwiązania * .sln. Będziesz musiał osobno zmienić nazwy folderów za pomocą systemu plików, a także będziesz musiał usunąć i odczytać projekty, ponieważ będą miały nowe nazwy folderów. Należy jednak pamiętać, że pliki rozwiązania i projektu to odpowiednio pliki texst i xml. Możesz napisać własny program, który je analizuje i zmienia nazwy obu folderów, nazw plików i naprawia pliki projektu / rozwiązania wewnętrznie.

AaronLS
źródło
1
Czy są dostępne bezpłatne narzędzia, które już to robią? Nic nie mogłem znaleźć.
David Pfeffer
5
Jedyną rzeczą, która może pomóc jest CoolCommands 4,0 „Dodaj wystaje z folderu”, tak, że po usunięciu / przemianowany foldery projektów można dodać je wszystkie z powrotem na raz: sharptoolbox.com/tools/coolcommands
AaronLS
1
sublime text 2 ma funkcję wyszukiwania wyrażeń regularnych i zastępuje funkcje ułatwiające sobie z tym sprawę.
jfyelle
22

Możesz również wyeksportować szablon, a następnie utworzyć nowy projekt z wyeksportowanego szablonu, zmieniając jego nazwę według własnego uznania

Edoardo
źródło
1
To również działało dla mnie. Musiałem jednak dokonać jednej korekty. Używałem frameworku encji w aplikacji internetowej, która pozostawiła stare pliki .dll pod oryginalną nazwą projektu, więc musiałem wyśledzić, dlaczego dostaję jakiś rodzaj duplikatu błędu dla klas tabel. Gdy usunąłem je z projektu, działało dobrze. Mam nadzieję, że to pomaga. I dzięki, Edoardo!
Steve,
2
Jest to absolutnie najlepszy sposób, aby to zrobić, zobacz msdn.microsoft.com/en-us/library/..., aby zobaczyć, gdzie przenieść wyeksportowany szablon, aby znaleźć go w oknie dialogowym „Nowy projekt”.
Ares Ou
13

Poniżej znajduje się krok po kroku sposób zmiany nazwy całego rozwiązania w Visual Studio 2013

Zakładając, że zmieniamy projekt o nazwie „HelloWorld.ui” na „Section1to5.ui”

  1. Przejdź do eksploratora rozwiązań (zrzut ekranu poniżej), kliknij prawym przyciskiem myszy projekt, którego nazwę chcesz zmienić, i wybierz „Zmień nazwę”. Wpisz nową nazwę, którą chcesz.

Zrzut ekranu eksploratora rozwiązań

  1. Kliknij prawym przyciskiem myszy projekt, którego nazwę właśnie zmieniłeś, i kliknij „Właściwości”. Na karcie Aplikacja zmień „Nazwa zestawu” i „Domyślna przestrzeń nazw”.

  2. W głównym pliku Program.cs (lub w innych utworzonych przez siebie plikach kodu) zmień nazwę deklaracji przestrzeni nazw, aby użyć nowej nazwy. W tym celu kliknij prawym przyciskiem myszy przestrzeń nazw i wybierz Refaktoryzuj> Zmień nazwę, wprowadź nową nazwę. Na przykład:

    przestrzeń nazw HelloWorld.ui ----> przestrzeń nazw Section1to5.ui

  3. Następnie rozwiń „Właściwości” i kliknij dwukrotnie plik AssemblyInfo.cs. Zauważysz poniższy fragment kodu:

[assembly: AssemblyTitle("HelloWorld.ui")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Microsoft")]
[assembly: AssemblyProduct("HelloWorld.ui")]
[assembly: AssemblyCopyright("Copyright © Microsoft 2015")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

Musisz zmienić AssemblyTitle i AssemblyProduct we właściwościach / AssemblyInfo.cs na nową nazwę, w tym przykładzie z „HelloWorld.ui” na „Section1to5.ui”. Po zakończeniu zmiany nazwy zapisz i zamknij Visual Studio.

  1. W katalogu projektu przejdź do folderu „HelloWorld.ui” i usuń katalogi „bin” i „obj”.

  2. Po zakończeniu zmień nazwę folderu „HelloWorld.ui” na nową nazwę projektu.

  3. Otwórz plik rozwiązań o zmienionej nazwie za pomocą edytora tekstu, takiego jak Notepad lub Notepad ++, i edytuj następujący wiersz:

    Project („{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}”) = „HelloWorld.ui”, „HelloWorld.ui \ HelloWorld.ui.csproj”, „{39FC65A3-3AE7-4EC9-B8F7-74F971636C70}”

Zastąp wszystkie wystąpienia „HelloWorld.ui” nową nazwą wybraną dla swojego projektu, w tym przypadku „Section1to5.ui”. To zmienia ścieżkę projektu do katalogu o zmienionej nazwie w kroku 6.

  1. Otwórz plik rozwiązań w Visual Studio oraz wyczyść i odbuduj projekt.

  2. Możesz zauważyć, że przycisk „Debuguj / Uruchom” został zastąpiony przyciskiem „Załącz”. Jeśli tak się stanie, wystarczy kliknąć projekt prawym przyciskiem myszy i wybrać opcję „Ustaw jako projekt StartUp”. Możesz też kliknąć Narzędzia> Dostosuj> Polecenia> Dodaj polecenie> Debuguj i dodaj przycisk.

Skończyłeś zmianę nazwy projektu, jeśli masz jakiekolwiek wątpliwości, nie krępuj się opublikować, a chętnie pomogę!

Abhishek Agrawal
źródło
6

Usuń podfoldery bin i obj, aby usunąć niepoprawne odwołania, a następnie użyj systemu Windows do wyszukania starej nazwy.

Edytuj wszystkie znalezione pliki XML i przebuduj, powinno być teraz w porządku.

Michał
źródło
4

Wypróbowałem program Visual Studio Project Renamer, ale w kilku przypadkach, gdy go wypróbowałem, pojawiły się wyjątki.

Miałem dobry sukces z CopyWiz .

Nie jestem w żaden sposób z nimi związany i jeszcze za to nie zapłaciłem, ale być może będę musiał wkrótce, ponieważ jest to jedyne narzędzie, które wydaje się działać zarówno w moich projektach C #, jak i C ++. Mam jednak nadzieję, że zarobią trochę pieniędzy i nadal je poprawiają.

Cameron
źródło
4

Usuń / dodaj metodę pliku projektu

Ta metoda ma całkowicie na celu zmianę nazwy katalogu projektu, tak jak jest to wyświetlane w Eksploratorze Windows.

  1. Wykonaj kopię zapasową całego projektu za pomocą GIT, SVN lub WinZip (ważne!).
  2. W ramach rozwiązania w Visual Studio usuń projekt.
  3. Zmień nazwę katalogu w Eksploratorze Windows.
  4. Dodaj projekt ponownie w Visual Studio.

Zalety

  • Możesz dopasować katalog w Eksploratorze Windows do nazwy projektu w rozwiązaniu.

Niedogodności

  • Usunięcie biblioteki powoduje usunięcie wszelkich odniesień do tej biblioteki z innych projektów. Rozwiązanie może się później nie skompilować, dopóki nie dodasz ponownie odnośników do wspomnianej biblioteki (jest to dość łatwe). To jest powód, dla którego krok 1 (tworzenie kopii zapasowych) jest tak ważny.
  • Jeśli masz kontrolę źródła, utracisz historię pliku.

Kliknięcie projektu prawym przyciskiem myszy i wybranie „Otwórz folder w Eksploratorze Windows” jest przydatne do śledzenia miejsca przechowywania projektu podczas wykonywania tego procesu.

Contango
źródło
4
WinZip ??? Mam nadzieję, że używasz prawdziwej kontroli źródła i nie tworzysz kopii zapasowych pliku zip. Jeśli ty lub ktokolwiek inny to czytasz, sprawdź try.github.io i wypróbuj go w projekcie testowym. Nie wrócisz!
Matt Klein,
2
Przeczytałem twój komentarz Mister @MattKlein i miałeś rację: D Dzięki!
Jeancarlo Fontalvo
@Matt Klein Całkowicie się zgadzam, zaktualizowałem i polecam GIT lub SVN.
Contango,
3

Możesz:

  1. kliknij plik-> nowy -> utwórz projekt z istniejącego projektu

  2. wybierz oryginalny plik, np. rozwiązanie 1 i wprowadź nową nazwę pliku rozwiązanie 2

  3. zmień nazwę projektu w nowym rozwiązaniu 2

李 全 全
źródło
Bardzo podoba mi się to podejście, czy z jakiegoś powodu jest ono obniżone.
Coops
zamknąłem moją maszynę pod koniec - w Visual Studio 2017
klewis
3

Jeśli masz problemy z ładowaniem współdzielonych projektów, takich jak Xamarin, pamiętaj o zmianie odniesienia do współdzielonych bibliotek lib w plikach csproj. Opracowałem grę CocosSharp, a projekty Droid / iOS / WP81 nie chciały się ładować. Musiałem zmienić poniżej wiersza w każdym pliku csproj (Driod / iOS / WP81), który odwoływał się do biblioteki współdzielonej. Przyczyną tego była zmiana nazw folderów, dlatego zastąp YOUR_PREVIOUS_NAMESPACE nowymi nazwami folderów.

<Import Project="..\YOUR_PREVIOUS_NAMESPACE.Shared\EmptyProject.Shared.projitems" Label="Shared" />

Zauważyłem również, że w przypadku projektów .Driod nazwy zestawu we właściwościach projektu nie można zmienić za pomocą programu visual studio (używam 2015). Musiałem ręcznie zmienić nazwę zestawu w pliku .Droid.csproj.

<AssemblyName>YourNameSpace</AssemblyName>

Następnie załadowałem rozwiązanie i we właściwościach projektu pojawiła się nowa nazwa. Po przebudowie wygenerowano dll o tej nazwie.

Zenon
źródło
2

Jeśli tworzysz witrynę internetową w programie Visual Studio 2010. Możesz zmienić nazwę projektu w następujący sposób.

Krok 1: W programie Visual Studio 2010 plik SLN zostanie zapisany w folderze projektu w programie Visual Studio 2010, a pliki źródłowe w folderze witryny w programie Visual Studio 2010.

Krok 2: Zmień nazwę folderu, klikając prawym przyciskiem myszy folder do przodu według Zmień nazwę, która zawiera projekt SLN.

Krok 3: Zmień nazwę pliku SLN, klikając prawym przyciskiem myszy plik SLN do przodu, zmieniając nazwę.

Krok 4: Zmień nazwę folderu zawierającego źródło tego pliku SLN w obszarze Witryna w programie Visual Studio 2010.

Krok 5: Następnie w końcu kliknij dwukrotnie plik SLN i zmień katalog główny folderu źródłowego SLN.

Pavi Thran
źródło
2

Jedyne rozwiązanie, które działa dla mnie na Visual Studio 2013 w projekcie WEB:

Powiedzmy, że chcę zmienić nazwę „projekt1” na „projekt2”. Powiedzmy, że fizyczna ścieżka do mojego pliku .sln to: c: \ moja \ ścieżka \ projekt1 \ projekt1.sln

więc ścieżka do mojego pliku .csproj oraz folderów bin i obj powinna wyglądać następująco: c: \ moja \ ścieżka \ projekt1 \ projekt1 \

  1. Otwórz rozwiązanie w VS, klikając dwukrotnie plik project1.sln.

  2. W Solution Explorer kliknij prawym przyciskiem myszy projekt (NIE rozwiązanie !!!), wybierz Zmień nazwę i wprowadź nową nazwę.

  3. W Solution Explorer kliknij projekt prawym przyciskiem myszy i wybierz Właściwości. Na karcie Aplikacja zmień ustawienia „Nazwa zestawu” i „Domyślna przestrzeń nazw”.

  4. W głównym pliku CS (lub dowolnym innym pliku kodu, na przykład Global.asax), zmień nazwę deklaracji przestrzeni nazw, aby użyć nowej nazwy. W tym celu kliknij prawym przyciskiem myszy przestrzeń nazw i wybierz Refaktoryzuj> Zmień nazwę, wprowadź nową nazwę. Na przykład:

projekt przestrzeni nazw 1

4.1 W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy projekt (NIE rozwiązanie !!!), wybierz Zmień nazwę i wprowadź nową nazwę.

  1. Upewnij się, że: AssemblyTitle i AssemblyProduct we właściwościach / AssemblyInfo.cs są ustawione na nową nazwę („project2”).

1 [zespół: AssemblyTitle („Nowa nazwa tutaj”)] 2 [zespół: AssemblyDescription („”)] 3 [zespół: AssemblyConfiguration („”)] 4 [zespół: AssemblyCompany („”)] 5 [zespół: AssemblyProduct (” Nowa nazwa tutaj ”)] 6 [zgromadzenie: AssemblyCopyright („ Copyright © 2013 ”)] 7 [zgromadzenie: AssemblyTrademark („ ”)] 8 [zgromadzenie: AssemblyCulture („ ”)]

  1. Zamknij Visual Studio.

  2. Usuń katalogi bin i obj fizycznie.

  3. Zmień nazwę folderu nadrzędnego i folderu źródłowego na nową nazwę (project2):

W przykładzie: c: \ moja \ ścieżka \ projekt1 \ projekt1

będzie: c: \ moja \ ścieżka \ projekt2 \ projekt2

  1. Zmień nazwę nazwy pliku SLN, klikając prawym przyciskiem myszy plik SLN do przodu przez Zmień nazwę.

  2. Następnie otwórz plik SLN (w notatniku lub dowolnym edytorze) i skopiuj i zamień (Ctrl + h) dowolną starą nazwę na nową.

  3. Otwórz VS i kliknij BUILD -> Clean Solution

  4. kliknij Kompiluj -> Kompiluj rozwiązanie, a następnie F5, aby uruchomić ...

  5. Uwaga 1: Jeśli pojawi się coś takiego: Błąd kompilacji CS0246: Nie można znaleźć typu lub nazwy przestrzeni nazw „projekt2” (brakuje dyrektywy używającej lub odwołania do zestawu?)

Plik źródłowy: c: \ Users \ Nazwa użytkownika \ AppData \ Local \ Temp \ Temporary ASP.NET Files \ root \ 78dd917f \ d0836ce4 \ App_Web_index.cshtml.a8d08dba.b0mwjmih.0.cs

Następnie przejdź do folderu „Tymczasowe pliki ASP.NET” i usuń wszystko.

  1. Uwaga 2: Jeśli próbujesz wykonać „zapisz jako” w nowym nazwanym projekcie i zachować również stary projekt, rozważ duplikowanie bazy danych przez modyfikację połączenia connectionStrings w pliku web.config, a także przez ponowne uruchomienie migracji, jeśli masz taki plik w pliku projekt.
Dudi
źródło
2

Jestem nowy w VS. Właśnie miałem ten sam problem: po kilku tygodniach pracy musiałem zmienić nazwę rozpoczętego projektu. To, co zrobiłem i zadziałało.

  1. Na wszelki wypadek wykonaj kopię zapasową projektu folderu, chociaż nie będziesz go dotykać, ale na wszelki wypadek!
  2. Utwórz nowy projekt i zapisz go, używając nazwy, którą chcesz dla swojego „nowego” projektu, co oznacza nazwę, którą chcesz zmienić na „stary” projekt.
  3. Zbuduj to. Następnie będziesz mieć projekt o żądanej nazwie, ale nie będzie on niczym innym, jak tylko otworzy okno (w moim przypadku aplikacja Windows Form).
  4. Po otwarciu nowego proyect kliknij Project-> Add Existing Ítem i za pomocą Eksploratora Windows zlokalizuj swój „stary” folder Project i wybierz wszystkie pliki w ... Visual Studio xxx \ Projects \ oldApp \ oldApp
  5. Wybierz wszystkie pliki (.vb, .resx) i dodaj je do swojego „nowego” projektu (tego, który powinien już być otwarty).
  6. Prawie ostatnim krokiem byłoby otwarcie pliku projektu za pomocą
    Eksploratora rozwiązań, a na pierwszej karcie zmień domyślny formularz startowy na taki, jaki powinien być.
  7. Odbuduj wszystko.

Może więcej kroków, ale mniej pisania lub wcale, tylko kilka kliknięć myszą. Mam nadzieję, że to pomoże :)

J. Davalos
źródło