Unter .NET 7 WinForms eine "app.config"-Datei beim Build in den Ausgabeordner kopieren lassen

UweKeim
Wed, 28 Jun 2023 14:40:30 +0000
Entwicklung

Unter .NET Framework 4.8 (und älter) gab es im Root eines Projekts eine Datei namens „App.config“, die durch irgendwelche „Magie“ bei Build in den Ausgabeordner kopiert und so umbenannt wurde, dass sie wie die Programmdatei hieß.

Also z. B. „MyApp.exe.config“ oder „MyApp.dll.config“.

Unter .NET 7 hat das erst wieder geklappt, nachdem ich das hier in meine .CSPROJ-Datei eingefügt hatte:

<PropertyGroup>
    <AppConfig>App.config</AppConfig>
</PropertyGroup>

Das <AppConfig>-Element, für das ich nirgendwo eine Dokumentation gefunden habe, ist wohl der Schlüssel zur Lösung.

Gefunden hier, hier, hier und hier auf Stack Overflow.

Laut diesem Kommentar auf Stack Overflow ist der Eintrag in der .CSPROJ-Datei wohl neuerdings nicht mehr notwendig, es reiche aus, eine „App.config“-Datei im selben Ordner wie die .CSPROJ-Datei zu haben. Ich belasse es zur Sicherheit weiterhin bei der expliziten Definition in der Projektdatei.

Achtung! Bei .NET-Programmen habe ich es erlebt, dass trotz vorhandener „MyApp.exe“ es immer auch noch eine „MyApp.dll“ gibt, und auch nur die Werte in der „MyApp.dll.config“ vom Programm zur Laufzeit gelesen wurden (also nicht aus der „MyApp.exe.config“-Datei, die war überflüssig).