У меня есть импорт .msbuild, который определяет свойство группы, содержащее определение препроцессора, среди прочего:Настройки DefineConstants динамически с помощью MSBuild импорта
<PropertyGroup>
<DefineConstants>$(DefineConstants);MY_CONSTANT_VALUE</DefineConstants>
</PropertyGroup>
Это <import>
издания в обоих csproj и vcxproj файлы. Во время сборки препроцессор C# не имеет видимости определенных констант. Тем не менее, эквивалент C++ определение препроцессора в том же файле работает правильно, и константы обнаружены:
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>$(PreProcessorDefinitions);MY_CONSTANT_VALUE</PreprocessorDefinitions>
</ClCompile>
<ItemDefinitionGroup>
Любые идеи, почему это работает только в C++?
Спасибо, я попытался импортировать в конце csproj, но константа все еще не определена. В конце я модифицировал в каждом csproj, чтобы содержать новый макрос, определенный в импорте .msbuild. На данный момент это прекрасно, так как мне нужна только гибкость для препроцессорных констант, но было бы неплохо унаследовать целые блоки XML так же, как файлы vcxproj. –
pdm2011