#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 подобные настройки вы не положите, потому что он на это не расчитан, он вообще оторван от проектных систем.
Комментариев нет:
Отправить комментарий