[C++] Visual C ++ 2008: Wie globale Einstellungen in einer Lösung definiert werden



Answers

Wie andere vorgeschlagen haben, können Eigenschaftenblätter tun, was Sie wollen. Der Trick besteht darin, InheritedPropertySheets zu verwenden, wie Sie #include in C ++ verwenden würden. Hinweis: das XML unterscheidet sich geringfügig für Projektdateien und Eigenschaftsblattdateien. Hier ist ein konstruiertes und vereinfachtes Beispiel für zwei Projekte ( prjA.vcproj und prjB.vcproj ), die das gleiche Eigenschaftsblatt ( sln.vsprops ) enthalten, das wiederum ein anderes ( strict.vsprops ) enthält:

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>

Sie können diese Frage und ihre Antworten auch nützlich finden.

Question

Ich habe eine Reihe von Lösungen mit einer großen Anzahl von Projekten in ihnen. Ich möchte in der Lage sein, globale Einstellungen für die Lösung zu definieren, die von allen Projekten verwendet werden. Zum Beispiel ein Include-Verzeichnis. Ich möchte das Include-Verzeichnis an einem Ort für alle Projekte in den Lösungen ändern können.

Als ich nach einer Lösung suchte, fand ich eine gute Beschreibung des Problems, das genau zu mir passt, aber die dort vorgeschlagene Lösung, die Projekteigenschaftsblätter, sind pro Projekt und nicht pro Lösung definiert.

Ich könnte Umgebungsvariablen oder Visual Studio-Einstellungen verwenden, aber dann muss jeder, der den Code kompilieren muss, genau dieselben Einstellungen definieren.

Kann jemand einen Weg vorschlagen, dies zu tun? Vielen Dank.




Wie vorgeschlagen, sollten Sie sich Property Sheets (aka .VSprops-Dateien) ansehen.
Ich habe hier eine sehr kurze Einführung in dieses Feature geschrieben.




Links