#c_sharp #visual_studio
Я знаю, что можно задать #define-константы в .csproj,
я знаю, что можно передать их через параметр командной строки msbuild.
Хочется прописать эти константы в .sln-файл, чтобы во-первых они были записаны (заскриптованы),
а во-вторых действовали сразу на все проекты в solution.
Можно, конечно, написать внешний .proj-файл, который будет вызывать msbuild и передавать
ему нужные константы, а уже msbuild будет внутри собирать .sln, но если есть возможность
просто использовать .sln - хотелось бы в первую очередь понять как использовать именно
эту возможность (обойтись минимальным количеством файлов и сохранить верность принципам
DRY и "что не заскриптовано того не существует")
UPD:
Есть же интерфейс IVsPersistSolutionProps -
https://msdn.microsoft.com/en-us/library/microsoft.visualstudio.shell.interop.ivspersistsolutionprops.aspx
в нём есть методы SaveSolutionProps и WriteSolutionProps, значит наверное всё-таки
свойства можно сохранять в .sln ?
А ещё бывает секция (только она про другое - показывать или нет корневой узел в окне
solution explorer)
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
Ответы
Ответ 1
Если хочется иметь общие настройки для нескольких проектов, то традиционно создаётся общий скрипт MSBuild, который содержит нужные вам настройки, а в файлах проектов он включается через. Учитывая, что Visual Studio вечно превращает содержимое файлов проектов в кашу, не вижу большого смысла следить за стерильностью их содержимого. В сам файл .SLN подобные настройки вы не положите, потому что он на это не расчитан, он вообще оторван от проектных систем.
Комментариев нет:
Отправить комментарий