Gegeben:
Microsoft Visual Studio Professional 2022 (64-Bit), Version 17.7.6
Windows 11 Pro
WPF-Anwendung
Hallo!
Wenn ich meine WPF-Anwendung in einem lokalen Ordner veröffentliche, sollte nur eine einzelne EXE-Datei erstellt werden. Allerdings mogelt sich eine *.pdb und neuerdings *.config.
*.pdb: Ich veröffentliche selbstverständlich die Release-Version und ich würde gerne darauf verzichten, immer wieder diese Symboldatei löschen zu müssen. Leider kann ich in den Projekteigenschaften nicht getrennt für Debug und Release die Erstellung der Symboldatei beeinflussen: Ändere ich die Einstellung für Release, ist Debug auch gleich mitgeändert.
Ich habe daher das Post-Build-Ereignis del /Q "$(TargetDir)*.pdb"
für Release implementiert, dennoch erscheint beim Veröffentlichen die PDB-Datei im Ausgabeordner. In bin\Release ist sie aber nicht vorhanden.
*.dll.config: Bis gestern nicht der Fall und nun erscheint auch diese Datei im Veröffentlichungsordner mit folgendem Inhalt:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
</configuration>
Ich habe aber nichts programmiert, was in eine Konfigurationsdatei müsste. Auch diese Datei brauche ich im Veröffentlichungsordner nicht.
Wie erreiche ich ohne große Verrenkungen, dass diese Dateien nicht im Veröffentlichungsordner erscheinen?
Danke und LG, René
René
OK, was PDB angeht, habe ich selbst die Lösung. In den Projekteinstellungen lassen sich in der Tat die Einstellungen nicht getrennt setzen, aber in der *.csproj doch:
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DebugType>full</DebugType>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
<DebugType>none</DebugType>
</PropertyGroup>
DebugType
auf "none
" gesetzt und schon funktioniert es.
Jetzt muss ich mich dem andern Problem widmen (*.dll.config).
René
Hast du eine "App.config" in deinem Projektordner?
Hallo pollito,
dann lösch die App.config
einfach (wenn eh nichts drin ist).
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Hallo pollito,
noch ein kleiner Tipp: die Condition
in MsBuild (die *.csproj
ist im Grunde eine Projekt-Datei für MsBuild) kann vereinfacht werden:
<PropertyGroup Condition="'$(Configuration)'=='Debug'">
<DebugType>full</DebugType>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<DebugType>none</DebugType>
</PropertyGroup>
Hier könnte auch z.B. für Debug
die Condition ganz wegfallen, d.h. es wird zuerst der Wert für alle Konfigurationen gesetzt (es kann ja auch mehr als Debug und Release geben), dann für Release wird er überschrieben.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"