Точно такая же проблема, хотя она будет появляться только в определенных проектах (даже в рамках одного решения).
При удалении файла *.*proj.user
(например, *.csproj.user
) для рассматриваемых проектов правильно сбрасываются недостающие функции («Перейти к определению», «Упорядочить использование», Intellisense для некоторых типов и т. Д.).
В нашем случае я подозреваю, что это происходит иногда , когда мы переключаем ветки с помощью SCM, который использует один рабочий каталог (например, git). При правильной настройке он не будет отслеживать файлы *.user*
, но это означает, что при наличии несовместимых изменений в разных ветвях его необходимо восстановить.
Так что, конечно, «иногда» будет зависеть от текущей ветви и следующей ветви.
К сожалению, я не вижу хорошего решения, если это так. Иногда вы действительно хотите сохранить пользовательские настройки для всех веток, если они совместимы, иногда вы хотите восстановить их безоговорочно. В идеале вы могли бы даже захотеть менять только их части при переключении, сохраняя другие части.
Если вам никогда не нужно хранить их и все в порядке с их регенерацией каждый раз, тогда вы можете настроить SCM так, чтобы они всегда удаляли эти файлы при переключении веток (например, используя ловушки для git). Это довольно наивное решение, однако, чтобы сделать его более универсально правильно, потребовалась бы более умная система (знающая семантику за файлами .user
и способная захватывать / подсказывать намерения пользователя при необходимости).