Windows-Desktop-App (.NET 8, WPF, MahApps.Metro) zum schnellen Wechsel von IPv4-/DNS-Einstellungen pro Netzwerkadapter (ähnlich wie NetSetMan, reduzierter Funktionsumfang).
Aktuelle Version: siehe IP-Changer/IP-Changer.csproj (Version) und CHANGELOG.md.
Repository-Root heißt idealerweise IP-Changer (falls der Ordner noch ProfileIpSwitcher heißt: Cursor schließen, Ordner in IP-Changer umbenennen, Projekt neu öffnen).
cd IP-Changer
dotnet build IP-Changer.sln
dotnet run --project IP-Changer\IP-Changer.csprojDie Build-Ausgabe liegt unter IP-Changer\bin\Debug\net8.0-windows\ (bzw. Release). Die EXE heißt weiterhin ProfileIpSwitcher.exe (AssemblyName in der .csproj).
Hinweis: Über app.manifest ist requireAdministrator gesetzt – beim Debuggen startet Visual Studio/Cursor die App ggf. mit Nachfrage nach Adminrechten.
cd IP-Changer
dotnet publish IP-Changer\IP-Changer.csproj -c Release -r win-x64 -o .\publishErgebnis: publish\ProfileIpSwitcher.exe (eine große, portable EXE inkl. .NET-Runtime).
-
Änderungen committen und pushen (
main). -
Tag setzen und pushen (muss zum Update-Check passen, mit
v):git tag -a v1.0.0-alpha.2 -m "Release notes kurz" git push origin v1.0.0-alpha.2
-
GitHub Actions (Workflow
.github/workflows/release.yml) baut aufwindows-latest, erstellt/aktualisiert das Release zum Tag und hängtProfileIpSwitcher-<Tag>-win-x64-self-contained.zip(nur die EXE darin) an.
Repo-Einstellung: unter Settings → Actions → General → Workflow permissions muss Read and write permissions erlaubt sein (sonst kann der Workflow kein Release anlegen).
Manuell: Du kannst weiterhin unter Releases von Hand Dateien anhängen; der Workflow macht es bei jedem neuen v*-Tag automatisch.
Nur „Source code (zip)“ / „Source code (tar.gz)“? Das legt GitHub bei jedem Release automatisch an – dein Build-ZIP ist eine zusätzliche Datei. Fehlt sie, ist der Release-Workflow fehlgeschlagen oder nicht gelaufen: unter Actions den Lauf Release zum Tag prüfen; Workflow-Rechte (siehe oben); nach Fix neuen v*-Tag pushen (oder Tag löschen und erneut setzen, falls du den gleichen Namen brauchst).
Die App vergleicht die installierte Assembly-Version mit dem neuesten Release-Tag auf GitHub.
| Datei | Pfad |
|---|---|
| Profile | %AppData%\ProfileIpSwitcher\profiles.json |
| Einstellungen | %AppData%\ProfileIpSwitcher\settings.json |
| Log | %AppData%\ProfileIpSwitcher\logs\app.log |
Siehe examples\profiles.example.json.
Siehe examples\settings.example.json.
- MahApps.Metro – UI-Theme
- System.Management – WMI (Netzwerkprofil u. a.)
- Windows Forms – nur für
NotifyIcon(Infobereich)
Unter Extras → Nach Updates suchen wird die GitHub-Releases-API aufgerufen (Repo-URL in den Einstellungen, Standard: https://github.com/…/IP-Changer). Es muss mindestens ein Release mit Tag (z. B. v1.0.0-alpha.2) existieren.
Alternativ: direkte JSON-URL (z. B. version.json auf raw.githubusercontent.com) mit Feld latestVersion.
- Beim Start: optional (Häkchen in den Einstellungen); bei neuem Release erscheint ein Hinweis mit Option, die Release-Seite zu öffnen.
- Der Versionsvergleich nutzt die numerische AssemblyVersion (z. B.
1.0.0.0); Pre-Release-Suffixe im GitHub-Tag werden für den Vergleich aufMajor.Minor.Buildgekürzt.