Как разделить свойства между несколькими проектами Visual Studio?(особенно проекты на C #) - PullRequest
9 голосов
/ 11 сентября 2010

Постоянно синхронизировать свойства нескольких проектов Visual Studio вручную. Итак, как вы можете поделиться свойствами между несколькими проектами?

Редактировать: я имею в виду свойства, такие как условные символы компиляции, обработка предупреждений и ошибок и т. Д., Т. Е. Вещи, которые можно настроить на вкладках «Проект» -> «Свойства» или путем редактирования файла XML проекта.

Подобные вопросы уже задавались ранее, см .: 1 , 2 и 3 . Однако, в моем понимании, ответы были специфичными для C ++. Я ищу ответ для проектов C #. Тем не менее, не стесняйтесь отвечать за другие виды проектов (Visual Basic и т. Д.), Если вы оставите разделение четким, потому что кто-то, кроме меня, может быть заинтересован.

В этом блоге предлагается решение проблемы, но я бы предпочел что-то попроще.

Кроме того, вы, по крайней мере, можете решить часть проблемы следующим образом (обратите внимание, что, хотя я проверял это, я не проверял это полностью):

Создайте файл AssemblyInfo.cs с атрибутами сборки, которыми вы хотите поделиться. Ссылка на этот существующий элемент в отдельных проектах. Используйте оригинальный (локальный) AssemblyInfo.cs и поместите туда специфичные для проекта атрибуты сборки. К сожалению, переопределение атрибутов, похоже, не работает, и управление атрибутами через графический интерфейс теперь ограничено.

Ответы [ 2 ]

5 голосов
/ 11 сентября 2010

Для такого рода вещей я предпочитаю иметь отдельный проект библиотеки классов с одним (или несколькими) статическими классами, хранящими (статические) свойства. Затем добавьте ссылку на этот проект из каждого проекта, для которого необходимо синхронизировать эти свойства, и у всех этих проектов будут одинаковые значения, и вы должны изменить его только в одном месте.

Например, допустим, у меня одно и то же приложение в веб-форме и на рабочем столе. Такие вещи, как строки подключения и тому подобное, должны быть одинаковыми для обоих. Поэтому я создам три проекта:
MyProject.Web (веб-приложение)
MyProject.Desktop (приложение для форм Windows)
MyProject.Common (библиотека классов)
Затем я добавляю новый статический класс в Common с именем Properties со статическим свойством ConnectionString, который возвращает строку подключения.
Затем я добавляю ссылку на Common в Web и на рабочем столе, и когда я хочу получить доступ к строке подключения из любого из них, я использую Common.Properties.ConnectionString.

1 голос
/ 11 сентября 2010

Мы очень интенсивно используем файлы .vsprops для совместного использования макросов, определенных для наших собственных проектов.

Кто-то задает тот же вопрос, что и вы, и предложил добавить в решение «пустой» визуальный проект C ++, чтобы можно было импортировать файл vsprops, а свойства были бы в целом видимы для остальной части решения. Если это не звучит слишком грубо, я могу узнать, как это получилось.

...