У меня есть решения VS с сотнями проектов C++, созданных с использованием Azure Devops, в этих проектах большая путаница с различными настройками проекта, поскольку проекты создавались в разное время в течение двух десятилетий, конвертировались из разных версий VS и т. д.
Мы хотим стандартизировать некоторые настройки, например, построить все, используя стандарт C++17. Это параметр компилятора cl.exe /std:c++17
, но я не вижу способа переопределить его через msbuild/YAML; Сначала я предполагал, что могу установить его как свойство проекта msbuild -p:std=c++17
, но это невозможно (по причинам, которые я не совсем понимаю).
Через пару лет мы, возможно, захотим заставить весь наш код собираться в соответствии со стандартом C++20. Точно так же мы можем захотеть сравнить сборки, перескакивающие между двумя настройками. Итак: есть ли способ применить настройки компилятора во время сборки, которые переопределяют настройки, специфичные для проекта?