Страницы

Поиск по вопросам

пятница, 10 января 2020 г.

Как добавить #define в .sln-файл?

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

Комментариев нет:

Отправить комментарий