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

julealgon
źródło
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ń.

Daniel Hilgarth
źródło
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.

Anton Sizikov
źródło
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.

Matas Vaitkevicius
źródło