Jak udostępniać te same ustawienia Resharper w wielu rozwiązaniach bez ręcznej interwencji?


79

Nasze projekty są zorganizowane w rozwiązaniu głównym (zawierającym każdy projekt) i wielu mniejszych rozwiązaniach zawierających grupy powiązanych projektów.

Chciałbym udostępniać te same ustawienia Resharper w każdym rozwiązaniu, upewniając się, że programiści nigdy nie muszą importować plików konfiguracyjnych w Resharper ani robić niczego ręcznie w tej sprawie. Używana przez nas wersja jest jedną z najnowszych, 7.0.1. Plik DotSettings wpisany w TFS działa świetnie w przypadku pojedynczego rozwiązania, ale replikowanie tego samego pliku dla rozwiązań 20–30 jest niemożliwe.

Czy istnieje sposób na udostępnienie tej samej konfiguracji dla każdego projektu / rozwiązania w całym zespole, bez konieczności jawnego konfigurowania tego przez programistów? W idealnym przypadku powinna istnieć możliwość zmiany ścieżki do pliku .DotSettings dla każdego rozwiązania, tak aby edycja jednego pliku .DotSettings automatycznie wpływała na każde rozwiązanie w zespole.

Aktualizacja:

Szukałem trochę na ten temat i wypróbowałem 2 różne metody, ale żadna z nich nie działa w 100%:

  • Łącza twarde korzystające z narzędzia mklink działają doskonale lokalnie, ale TFS ich nie obsługuje
  • Zwykłe skróty również byłyby rozsądnym rozwiązaniem tego problemu, ale Resharper ich nie czyta

Nie mam tutaj opcji.

Aktualizacja 2:

Rozwiązanie zaproponowane przez Daniela Hilgartha działa idealnie, ale tylko pod warunkiem aktualizacji Resharpera. Błąd, który powodował, że pliki .DotSettings były automatycznie pobierane i edytowane na każdym komputerze, został poprawiony w wersji 7.1. Przetestowałem to przed i po aktualizacji oprogramowania i teraz działa zgodnie z oczekiwaniami.

Więcej informacji o błędzie można znaleźć tutaj:

http://youtrack.jetbrains.com/issue/RSRP-288235


Której wersji ReSharper używasz?
— Daniel Hilgarth

Używam wersji 7.0.1 narzędzia. Zaktualizuje pytanie, aby to odzwierciedlić.
— julealgon

Wersja 10 nadal nie zapewnia żadnego konkretnego rozwiązania tego problemu. Chciałbym na przykład zobaczyć to jako całkowicie oddzielną warstwę.
— MarioDS

Odpowiedzi:


77

Resharper obsługuje warstwowanie opcji.

Używałbyś tego w ten sposób:

  1. Miej jeden plik DotSettings ze wszystkimi ustawieniami w nim.
  2. Dla każdego rozwiązania wykonaj następujące kroki:
    1. ReSharper -> Zarządzaj opcjami
    2. Kliknij prawym przyciskiem myszy „Rozwiązanie„ Twoje rozwiązanie ”udostępnione zespołowi”
    3. Wybierz Dodaj warstwę -> Otwórz plik ustawień
    4. Wybierz centralny plik DotSettings

Spowoduje to utworzenie pliku DotSettings dla każdego rozwiązania. Musisz to sprawdzić w TFS wraz z centralnym plikiem DotSettings.
Ważne: plik DotSettings rozwiązań zawiera tylko łącze do centralnego, nie replikują ustawień.


1
Działa, ale ustawienia „Rozwiązanie„ Twoje rozwiązanie ”osobiste” zastępują warstwę współdzieloną przez zespół. Musiałem więc powtórzyć 2-4 również dla ustawień osobistych. Teraz odbijam się, czy muszę dodać mój plik sln.DotSettings.user do kontroli źródła, czy dodać jeszcze jeden krok do procedury konfiguracji lokalnego środowiska programistycznego.
— Sasha,

1
@alexander: Rzeczywiście, to jest prawdziwy problem i JetBrains nad tym pracuje: youtrack.jetbrains.com/issue/RSRP-333945
— Daniel Hilgarth

Odnośnie stwierdzenia „Plik DotSettings rozwiązań zawiera tylko łącze do centralnego”… czy to prawda? Postępowałem zgodnie z powyższą procedurą, ale otrzymałem dwa pliki DotSettings (centralny i rozwiązanie) wypełnione ustawieniami. To może być w porządku ... Po prostu chcę się upewnić, że robię to dobrze.
— Jason Capriotti

1
Usunąłem ustawienia rozwiązania i łącze do centralnego i spróbowałem ponownie. Działało zgodnie z oczekiwaniami. Mogłem już mieć plik ustawień rozwiązania, który zawierał wszystkie ustawienia.
— Jason Capriotti

21

Pytanie jest stare, ale jeśli ktoś wciąż szuka sposobu na udostępnienie ustawień zespołu:

Wszystkie ustawienia języka R # można wyeksportować i spakować jako pakiet NuGet i rozprowadzić jako zwykłe rozszerzenie ReSharper.

Daje to elastyczność: możesz udostępniać różne ustawienia dla różnych zespołów, ReSharper zajmie się wykrywaniem nowej wersji i powiadomieniem programisty. Cóż, w zasadzie wszystkie korzyści, które można uzyskać, korzystając z NuGet.


1
To naprawdę bardzo miłe. Myślałem o stworzeniu własnego wewnętrznego pakietu NuGet, aby zrobić dokładnie tego rodzaju rzeczy, ale myślałem o zrobieniu tego ręcznie (zainstalowaniu go jako normalnego pakietu NuGet na poziomie rozwiązania, a następnie edytowaniu względnych ścieżek odwołań, aby ReSharper zużywał to). Nie wiedziałem, że własne rozszerzenia ReSharper również używają NuGet. Bardzo przydatne.
— julealgon

2

W Resharper 2015

Idź do Resharper-> Options-> Manage(pic 1) -> Options-> Import and Export(pic 2) ->from file....

wprowadź opis obrazu tutaj

wprowadź opis obrazu tutaj

A jeśli co importować go do swojego zespołu możesz się Solution settingswtedy zamiast Import and Exportw Optionspodróży do Copy Settings to-> team-shared.

wprowadź opis obrazu tutaj

Mam nadzieję, że zaoszczędzi ci to trochę czasu.

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.