Есть ли аналог Property Manager для проектов C# (для общих настроек проекта)?

Вы можете использовать окно диспетчера свойств в Visual Studio для управление общими свойствами проектов C++, но похоже, что для проектов C# нет эквивалента .

Есть ли способ установить общие настройки для нескольких проектов? Примеры вещей, которые я хотел бы сделать:

  • добавить директиву препроцессора TEST для всех проектов с конфигурацией сборки TEST
  • изменить предупреждения на ошибки для всех проектов C#
  • добавить ссылку на некоторую общую сборку для N выбранных проектов C# сразу
  • и т.п.

Плагин, макрос или расширение будут приемлемы.


person Kit    schedule 04.08.2011    source источник
comment
Нет эквивалента, в основном потому, что проекты C# имеют очень мало настраиваемых элементов. Вы думаете как программист C++, а это не лучший способ начать работу с C#. Вы можете получить то, что хотите, отредактировав файлы .vcproj вручную, используйте <Import>   -  person Hans Passant    schedule 04.08.2011
comment
Я далек от начала работы с C #, и, увы, глобальная замена регулярных выражений в файлах .csproj до сих пор была моим решением. Это не весело.   -  person Kit    schedule 05.08.2011


Ответы (3)


Вы можете настроить шаблон проекта C# для Visual Studio, чтобы каждый раз, когда вы создаете новый проект, он имел все необходимые параметры.

http://msdn.microsoft.com/en-us/library/6db0hwky.aspx

http://www.a2zdotnet.com/View.aspx?Id=170

person dbugger    schedule 05.08.2011
comment
Для новых проектов это действительно полезно. Я ищу решение для применения изменений в существующих проектах. - person Kit; 05.08.2011
comment
Файлы проекта xml. Если вы хотите очистить существующие файлы, вы можете написать небольшое приложение, которое копирует их и вставляет нужные вам узлы. - person dbugger; 05.08.2011
comment
Хм. Это заставило меня задуматься... Могу ли я использовать функцию преобразования VS web.config? Отдельный sln, который включает файлы .csproj в качестве содержимого, а не проектов, и использует правила преобразования для изменения файлов. Тогда настоящий sln их подхватывает...? - person Kit; 05.08.2011
comment
Похоже, вам придется бороться со многими встроенными соглашениями VS, чтобы это сработало. Отдельное консольное приложение будет менее чревато тем, что VS будет делать неестественные вещи. Просто скажите ему, где искать файлы проекта, загрузите их и делайте свою грязную работу. - person dbugger; 05.08.2011

Ближайший эквивалент в настоящее время использует регулярное выражение из VS в незагруженном проекте или пишет что-то для обработки msbuild xml, поддерживающего файлы .csproj.

person Kit    schedule 15.08.2011
comment
Вы нашли лучшее решение, чем это? - person dhiraj suvarna; 26.03.2017
comment
Не совсем. Он не появляется достаточно часто. Я написал специальные инструменты для обработки XML. С XDocument это довольно просто. - person Kit; 19.05.2017

Не существует реального эквивалента Property Manager для проектов C#. Однако, если целью является совместное использование общих настроек в нескольких проектах, вы можете создать пакет NuGet с файлом .props, определяющим общие свойства, и ссылаться на него в своих проектах C# — VS автоматически импортирует его во время сборки.

Включение .props и .targets поддерживается начиная с NuGet 2.x. Совет: убедитесь, что имя файла .props соответствует идентификатору пакета NuGet, иначе он не будет включен. Вы можете увидеть пример здесь.

person Gryff    schedule 03.05.2019