Upgrade Dev Proxy Version
Bump Dev Proxy from current version to a new version across all project files.
Prerequisites
Confirm the Dev Proxy workspace is open:
- Workspace root: contains
DevProxy.sln - Schema folder:
./schemas/v<current-version>/exists - Project files:
DevProxy/,DevProxy.Abstractions/,DevProxy.Plugins/present
Upgrade Process
Step 1: Identify Current Version
Find current version from DevProxy/DevProxy.csproj:
<Version>X.Y.Z</Version>
Step 2: Copy Schema Folder
Copy the schema folder to the new version:
cp -r ./schemas/v<current-version> ./schemas/v<new-version>
Step 3: Update Version Strings
Update version in all relevant files. There are two categories:
Category A: Assembly/Package Version (format: X.Y.Z)
Update <Version>X.Y.Z</Version> in:
DevProxy/DevProxy.csprojDevProxy.Abstractions/DevProxy.Abstractions.csprojDevProxy.Plugins/DevProxy.Plugins.csproj
Category B: Schema URLs (format: vX.Y.Z in URL paths)
Update schemas/v<old>/ to schemas/v<new>/ in:
DevProxy/devproxyrc.json-$schemaURLsDevProxy/devproxy-errors.json-$schemaURLDevProxy/config/m365.json- all$schemaURLsDevProxy/config/m365-mocks.json-$schemaURLDevProxy/config/microsoft-graph.json- all$schemaURLsDevProxy/config/microsoft-graph-rate-limiting.json-$schemaURLDevProxy/config/spo-csom-types.json-$schemaURLDevProxy.Plugins/Mocking/MockResponsePlugin.cs- hardcoded schema URL
Category C: Installer Files (format: X.Y.Z or X.Y.Z-beta.N)
Update version in:
install.iss:#define MyAppSetupExeName "dev-proxy-installer-win-x64-X.Y.Z"#define MyAppVersion "X.Y.Z"
install-beta.iss:#define MyAppSetupExeName "dev-proxy-installer-win-x64-X.Y.Z-beta.N"#define MyAppVersion "X.Y.Z-beta.N"
Category D: Script Files (format: vX.Y.Z or vX.Y.Z-beta.N)
Update version string in:
scripts/local-setup.ps1-$versionString = "vX.Y.Z-beta.N"scripts/version.ps1-$script:versionString = "vX.Y.Z-beta.N"
Category E: Dockerfiles (format: X.Y.Z or X.Y.Z-beta.N)
Update DEVPROXY_VERSION ARG in:
Dockerfile-ARG DEVPROXY_VERSION=X.Y.ZDockerfile_beta-ARG DEVPROXY_VERSION=X.Y.Zscripts/Dockerfile_local-ARG DEVPROXY_VERSION=X.Y.Z-beta.N
Version Formats
Different files use different version formats:
| Location | Format | Example |
|---|---|---|
csproj <Version> |
X.Y.Z |
2.1.0 |
| Schema URL path | vX.Y.Z |
v2.1.0 |
| Installer stable | X.Y.Z |
2.1.0 |
| Installer beta | X.Y.Z-beta.N |
2.1.0-beta.1 |
| Script version | vX.Y.Z-beta.N |
v2.1.0-beta.1 |
| Dockerfile stable | X.Y.Z |
2.1.0 |
| Dockerfile beta | X.Y.Z-beta.N |
2.1.0-beta.1 |
Execution Steps
- Ask for the target version if not provided
- Detect current version from
DevProxy/DevProxy.csproj - Copy schema folder:
cp -r ./schemas/v{old} ./schemas/v{new} - Update Category A files (csproj Version tags)
- Update Category B files (schema URLs in JSON and CS files)
- Update Category C files (installer definitions)
- Update Category D files (PowerShell version strings)
- Update Category E files (Dockerfiles)
- Report summary of changes made
Automation Script
Use the bundled script to automate the upgrade:
.github/skills/upgrade-devproxy-version/scripts/upgrade-version.sh <new-version> [workspace-root]
Example:
.github/skills/upgrade-devproxy-version/scripts/upgrade-version.sh 2.1.0 .
The script handles all categories automatically, including detecting the current version and applying appropriate beta suffixes where needed.
Important Notes
- Schema folder copy creates a new folder; existing version folder is preserved
- Do NOT update
System.CommandLinepackage version (coincidentally2.0.0-beta5) - Do NOT update
.vscode/tasks.jsonversion (different context) - Beta releases: installer-beta.iss and script files use
-beta.Nsuffix - Stable releases: install.iss uses plain
X.Y.Z
Search Patterns
To find all version references, use:
# Assembly versions
grep -r "X\.Y\.Z" --include="*.csproj"
# Schema URLs
grep -r "schemas/vX\.Y\.Z" --include="*.json" --include="*.cs"
# Installer versions
grep -r "X\.Y\.Z" --include="*.iss"
# Script versions
grep -r "vX\.Y\.Z" --include="*.ps1"
Example: Upgrade from 2.0.0 to 2.1.0
# Step 1: Copy schemas
cp -r ./schemas/v2.0.0 ./schemas/v2.1.0
# Step 2: Find and update all version strings
# (Use grep/sed or editor find-replace)
Files to update:
- 3 csproj files:
2.0.0→2.1.0 - ~20 schema URLs:
v2.0.0→v2.1.0 - 2 installer files: version defines
- 2 PowerShell scripts: version strings
- 3 Dockerfiles: DEVPROXY_VERSION ARG
Verification
After upgrade, verify:
- All three csproj files show new
<Version> - Schema folder
./schemas/v{new}/exists - All JSON config files reference new schema version
dotnet buildsucceeds
Source: dotnet/dev-proxy — distributed by TomeVault.