Directory.Build.props / Directory.Build.targets
Directory.Build.props
Automatischer Import durch MSBuild
MSBuild importiert beim Build genau eine Directory.Build.props: die nächstgelegene Datei, beginnend im Verzeichnis der .csproj und nach oben wandernd.
Wichtig: Liegt z. B. unter src/Directory.Build.props eine eigene Datei, wird die Root-Directory.Build.props nicht automatisch geladen. Einstellungen aus dem Repository-Root gelten dann nicht, solange sie nicht explizit verknüpft werden.
Verschachtelte Props: Parent importieren
In jeder untergeordneten Directory.Build.props den Parent explizit importieren:
<?xml version="1.0" encoding="utf-8"?>
<Project>
<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))" />
<!-- Lokale Ergänzungen oder Overrides -->
<PropertyGroup>
<TargetFrameworks>net8.0;net10.0</TargetFrameworks>
</PropertyGroup>
</Project>
Directory.Build.targets
Dasselbe Prinzip gilt für Directory.Build.targets: nur die nächste Datei wird automatisch importiert. Bei verschachtelten targets-Dateien ebenfalls den Parent per GetPathOfFileAbove importieren.