Как использовать одни и те же настройки Resharper для нескольких решений без ручного вмешательства?

79

Наши проекты организованы в основное решение (содержащее каждый проект) и несколько меньших решений, содержащих группы связанных проектов.

Я хотел бы использовать одни и те же настройки Resharper для каждого решения, чтобы разработчикам никогда не приходилось импортировать файлы конфигурации в Resharper или делать что-либо вручную в этом отношении. Используемая нами версия - одна из последних, 7.0.1. Файл DotSettings, зарегистрированный в TFS, отлично работает с одним решением, но репликация одного и того же файла для 20-30 решений - нет-нет.

Есть ли способ использовать одну и ту же конфигурацию для каждого проекта / решения в рамках всей команды, без необходимости для разработчиков явно настраивать это? В идеале должна быть возможность изменить путь к файлу .DotSettings для каждого решения, чтобы при редактировании одного файла .DotSettings он автоматически влиял на каждое решение в группе.

Обновить:

Я немного искал об этом и пробовал 2 разных метода, но ни один из них не работает на 100%:

  • Жесткие ссылки с использованием инструмента mklink отлично работают локально, но TFS их не поддерживает
  • Обычные ярлыки также были бы разумным решением, но Resharper их не читает.

У меня здесь нет вариантов.

Обновление 2:

Решение, предложенное Дэниелом Хилгартом, работает отлично, но только при обновлении Resharper. Ошибка, из-за которой файлы .DotSettings автоматически извлекались и редактировались на каждой машине, была исправлена ​​в версии 7.1. Я тестировал это до и после обновления программного обеспечения, и теперь он работает так, как я ожидал.

Более подробную информацию об ошибке можно найти здесь:

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

джулеалгон
источник
Какую версию ReSharper вы используете?
Дэниел Хилгарт,
Я использую версию 7.0.1 инструмента. Обновим вопрос, чтобы отразить это.
julealgon
Версия 10 по-прежнему не предлагает для этого никакого конкретного решения. Я бы хотел видеть это, например, совершенно отдельным слоем.
MarioDS

Ответы:

77

Resharper поддерживает наслоение опций.

Вы бы использовали это так:

  1. Создайте один файл DotSettings со всеми вашими настройками.
  2. Для каждого решения выполните следующие действия:
    1. ReSharper -> Параметры управления
    2. Щелкните правой кнопкой мыши «Решение« Ваше решение »для группы»
    3. Выберите Добавить слой -> Открыть файл настроек.
    4. Выберите центральный файл DotSettings

Это создаст файл DotSettings для каждого решения. Вам необходимо зарегистрировать их в TFS вместе с центральным файлом DotSettings.
Важно: файл DotSettings решений содержит только ссылку на центральный, они не копируют настройки.

Дэниел Хилгарт
источник
1
Это работает, но настройки «Решение 'Ваше решение'» имеют приоритет над общим уровнем команды. Так что мне пришлось повторить 2-4 и для личных настроек. Теперь я решаю, нужно ли мне добавить файл sln.DotSettings.user в систему управления версиями или добавить еще один шаг в процедуру настройки локальной среды разработки.
Саша
1
@alexander: Действительно, это настоящая проблема, и JetBrains работает над этим: youtrack.jetbrains.com/issue/RSRP-333945
Дэниел Хилгарт
Что касается утверждения «Файл DotSettings решений содержит только ссылку на центральный» ... это правда? Я выполнил описанную выше процедуру, но в итоге у меня осталось два файла DotSettings (центральный и решение), заполненных настройками. Это может быть хорошо ... Я просто хочу убедиться, что все делаю правильно.
Джейсон Каприотти
1
Я удалил настройки решения и ссылку на центральную и попробовал еще раз. Это сработало, как и ожидалось. Возможно, у меня уже был файл настроек решения, содержащий все настройки.
Джейсон Каприотти
21

Вопрос старый, но если кто-то все еще ищет способ поделиться настройками команды:

Все настройки для R # можно экспортировать и упаковать как пакет NuGet и распространять как обычное расширение ReSharper.

Это дает вам гибкость: вы можете использовать разные настройки для разных команд, ReSharper позаботится об обнаружении новой версии и уведомлении разработчика. Ну, в основном все преимущества, которые вы можете получить при использовании NuGet.

Антон Сизиков
источник
1
Это действительно очень мило. Я думал о создании нашего собственного внутреннего пакета NuGet, чтобы делать именно такие вещи, но я думал сделать это вручную (установить его как обычный пакет NuGet на уровне решения, а затем отредактировать относительные пути ссылок, чтобы ReSharper использовал Это). Я не знал, что собственные расширения ReSharper также используют NuGet. Очень-очень полезно.
julealgon 06
2

В Resharper 2015

Перейти Resharper-> Options-> Manage(рис 1) -> Options-> Import and Export(рис 2) ->from file....

введите описание изображения здесь

введите описание изображения здесь

И если вы , что импортировать его для вашей команды , вы можете Solution settingsзатем вместо Import and Exportв Optionsпути к Copy Settings to-> team-shared.

введите описание изображения здесь

Надеюсь, это сэкономит вам время.

Матас Вайткявичюс
источник