Почему свойство поставщика пространства имен не сохраняется в файле проекта для данного подкаталога?

Подкаталоги в проектах VS2008 в основном используются для физического представления на диске структуры пространства имен проекта. Каждая папка имеет логическое свойство, называемое «Namespace Provider», которое, если установлено в True, заставляет ReSharper проверять, что физическое расположение данного класса соответствует логическому расположению пространства имен.

Иногда я не хочу, чтобы папка использовалась в качестве поставщика пространства имен, поэтому я устанавливаю для этого свойства значение False, и ReSharper не выполняет проверку.

Проблема

Этот параметр не сохраняется в файле проекта, поэтому в следующий раз, когда я открою решение, будет восстановлено значение по умолчанию True. Это не так уж важно, но ReSharper действительно дает вам множество предупреждений о неправильных пространствах имен.

Почему не сохраняется значение свойства?

Версии ...

ReSharper 4.0 с VS2008 SP1


person Andy McCluggage    schedule 03.04.2009    source источник
comment
Это свойство предоставляется ReSharper. Какую версию ты используешь?   -  person Ilya Ryzhenkov    schedule 03.04.2009
comment
У меня такая же проблема, не сохраняется с 4.5.1288.2   -  person CaffGeek    schedule 18.02.2010


Ответы (3)


Для меня этот параметр сохраняется в файле .csproj.resharper. У нас возникли проблемы, потому что некоторые разработчики добавляют шаблон игнорирования к этому файлу и не возвращают его.

person Robert Patterson    schedule 30.09.2010
comment
Это определенно ответ, и мы стараемся не проверять этот файл, потому что я предполагал, что он зависит от пользователя (настройки, предварительные настройки и т. Д.). Но если он действительно содержит такие глобальные настройки, как этот, нам следует переосмыслить, как мы обрабатываем эти файлы. - person Andy McCluggage; 30.09.2010
comment
Кажется, это изменилось и теперь находится в файле DotSettings - person Dan; 31.07.2013

@olivehour

Это параметр уровня проекта, который сохраняется в файле ProjectName.csproj.DotSettings. Рассмотрите возможность проверки всех файлов .DotSettings на уровне проекта в системе управления версиями, чтобы сохранить этот параметр в вашей команде.

person Jura Gorohovsky    schedule 19.02.2012

Быстрый ответ: перед переключением ветки закройте решение, которое вы переключаете. Это препятствует тому, чтобы VS предлагал вам «перезагрузить» решение, потому что оно было изменено. Visual Studio удалит пользовательские настройки ReSharper из файла .suo при его перезагрузке.

Длинный ответ: Я обнаружил, что для сохранения установки "Поставщик пространства имен" False (установка True всегда сохраняется, потому что это состояние по умолчанию) необходимо убедиться, что перед переключением ветвей (через ToirtoiseSVN) я не забудьте закрыть Visual Studio или решение.

Состояние сбрасывается каждый раз, когда вы выбираете параметр «Перезагрузить» Visual Studio после того, как Visual Studio предлагает вам сообщение: «Проект 'project.name.here' был изменен вне среды. Нажмите" Обновить ", чтобы загрузить обновленный проект из диск. Нажмите игнорировать, чтобы игнорировать внешние изменения ".

Я предполагаю, что это происходит из-за того, что Visual Studio удаляет все неизвестные значения из файла .suo при его перезагрузке. Здесь сохраняется этот параметр ReSharper (поставщик пространства имен).

person CodeDreamer68    schedule 17.05.2011