Как и предполагали другие, списки свойств могут делать то, что вы хотите. Хитрость заключается в том, чтобы использовать InheritedPropertySheets
, как если бы вы использовали #include
в C ++. ПРИМЕЧАНИЕ: XML немного отличается для файлов проекта и файлов свойств. Вот надуманный и упрощенный пример двух проектов (prjA.vcproj
и prjB.vcproj
), включая один и тот же лист свойств (sln.vsprops
), который сам включает в себя другой (strict.vsprops
):
strict.vsprops
<VisualStudioPropertySheet ...>
<Tool Name="VCCLCompilerTool" WarningLevel="3" WarnAsError="true"/>
</VisualStudioPropertySheet>
sln.vsprops
<VisualStudioPropertySheet ... InheritedPropertySheets=".\strict.vsprops">
<Tool
Name="VCCLCompilerTool"
PreprocessorDefinitions="NOMINMAX=1"
RuntimeTypeInfo="true"
/>
</VisualStudioPropertySheet>
prjA.vcproj
<VisualStudioProject ...>
<Configurations>
<Configuration ... InheritedPropertySheets=".\sln.vsprops">
</Configuration>
</Configurations>
...
</VisualStudioProject>
prjB.vcproj
<VisualStudioProject ...>
<Configurations>
<Configuration ... InheritedPropertySheets=".\sln.vsprops">
</Configuration>
</Configurations>
...
</VisualStudioProject>
Вы также можете найти этот вопрос и ответы на него полезными.