diff --git a/platforms/Windows/SideBySideUpgradeStrategy.props b/platforms/Windows/SideBySideUpgradeStrategy.props
index ae79f273..2fcf6fb8 100644
--- a/platforms/Windows/SideBySideUpgradeStrategy.props
+++ b/platforms/Windows/SideBySideUpgradeStrategy.props
@@ -17,10 +17,10 @@
-->
- {7E95DC06-7F84-4E8E-A038-8304AF0468FB}
- {87019842-3F3E-4227-B5C5-23A8EF72AD89}
- {91D382AF-1E92-44DC-A4AD-AEE91C1B5160}
- {8DD91C86-D13D-490B-B06B-9522A9CF504C}
+ {7E95DC06-7F84-4E8E-A038-8304AF0468FB}
+ {87019842-3F3E-4227-B5C5-23A8EF72AD89}
+ {91D382AF-1E92-44DC-A4AD-AEE91C1B5160}
+ {8DD91C86-D13D-490B-B06B-9522A9CF504C}
{BEA8C6DC-F73E-445B-9486-2333D1CF2886}
{313B9C1F-D5B5-4FED-B7E0-138F1EE6B26A}
{01AFF1CF-A025-41B6-BCBC-728D794353FD}
@@ -54,10 +54,10 @@
$(DefineConstants);
BundleUpgradeCode=$(BundleUpgradeCode);
- BldUpgradeCode=$(BldUpgradeCode);
- CliUpgradeCode=$(CliUpgradeCode);
- DbgUpgradeCode=$(DbgUpgradeCode);
- IdeUpgradeCode=$(IdeUpgradeCode);
+ BldAssertsUpgradeCode=$(BldAssertsUpgradeCode);
+ CliAssertsUpgradeCode=$(CliAssertsUpgradeCode);
+ DbgAssertsUpgradeCode=$(DbgAssertsUpgradeCode);
+ IdeAssertsUpgradeCode=$(IdeAssertsUpgradeCode);
RtlUpgradeCode=$(RtlUpgradeCode);
AndroidPlatformUpgradeCode=$(AndroidPlatformUpgradeCode);
WindowsPlatformUpgradeCode=$(WindowsPlatformUpgradeCode);
diff --git a/platforms/Windows/bld/bld.wixproj b/platforms/Windows/bld/asserts/bld.asserts.wixproj
similarity index 97%
rename from platforms/Windows/bld/bld.wixproj
rename to platforms/Windows/bld/asserts/bld.asserts.wixproj
index 0f3385e8..bd53ebaa 100644
--- a/platforms/Windows/bld/bld.wixproj
+++ b/platforms/Windows/bld/asserts/bld.asserts.wixproj
@@ -5,6 +5,7 @@
_USR_LIB_CLANG=$(ImageRoot)\Toolchains\$(ProductVersion)+Asserts\usr\lib\clang;
_USR_LIB_SWIFT_CLANG=$(ImageRoot)\Toolchains\$(ProductVersion)+Asserts\usr\lib\swift\clang;
+ bld.asserts
diff --git a/platforms/Windows/bld/asserts/bld.wxs b/platforms/Windows/bld/asserts/bld.wxs
new file mode 100644
index 00000000..dd1084ce
--- /dev/null
+++ b/platforms/Windows/bld/asserts/bld.wxs
@@ -0,0 +1,3 @@
+
+
+
diff --git a/platforms/Windows/bld/bld.wxs b/platforms/Windows/bld/bld.wxi
similarity index 97%
rename from platforms/Windows/bld/bld.wxs
rename to platforms/Windows/bld/bld.wxi
index 0af0ebea..6fcde7aa 100644
--- a/platforms/Windows/bld/bld.wxs
+++ b/platforms/Windows/bld/bld.wxi
@@ -1,18 +1,19 @@
-
+
+
-
+
-
+
@@ -549,7 +550,7 @@
-
+
@@ -578,4 +579,4 @@
-
+
diff --git a/platforms/Windows/bundle/installer.wixproj b/platforms/Windows/bundle/installer.wixproj
index b62f1e58..693c07a2 100644
--- a/platforms/Windows/bundle/installer.wixproj
+++ b/platforms/Windows/bundle/installer.wixproj
@@ -16,10 +16,10 @@
-
-
-
-
+
+
+
+
diff --git a/platforms/Windows/bundle/installer.wxs b/platforms/Windows/bundle/installer.wxs
index 717a719b..cf0912a7 100644
--- a/platforms/Windows/bundle/installer.wxs
+++ b/platforms/Windows/bundle/installer.wxs
@@ -82,27 +82,27 @@
diff --git a/platforms/Windows/cli/cli.wixproj b/platforms/Windows/cli/asserts/cli.asserts.wixproj
similarity index 96%
rename from platforms/Windows/cli/cli.wixproj
rename to platforms/Windows/cli/asserts/cli.asserts.wixproj
index 5dda6e00..01937894 100644
--- a/platforms/Windows/cli/cli.wixproj
+++ b/platforms/Windows/cli/asserts/cli.asserts.wixproj
@@ -7,6 +7,7 @@
SWIFT_FORMAT_BUILD=$(SWIFT_FORMAT_BUILD);
SWIFT_DOCC_RENDER_ARTIFACT_ROOT_DIST=$(SWIFT_DOCC_RENDER_ARTIFACT_ROOT)\dist;
+ cli.asserts
diff --git a/platforms/Windows/cli/asserts/cli.asserts.wxs b/platforms/Windows/cli/asserts/cli.asserts.wxs
new file mode 100644
index 00000000..b9b2899c
--- /dev/null
+++ b/platforms/Windows/cli/asserts/cli.asserts.wxs
@@ -0,0 +1,3 @@
+
+
+
diff --git a/platforms/Windows/cli/cli.wxs b/platforms/Windows/cli/cli.wxi
similarity index 98%
rename from platforms/Windows/cli/cli.wxs
rename to platforms/Windows/cli/cli.wxi
index adbc496a..02dcb123 100644
--- a/platforms/Windows/cli/cli.wxs
+++ b/platforms/Windows/cli/cli.wxi
@@ -1,18 +1,19 @@
-
+
+
-
+
-
+
@@ -735,7 +736,7 @@
-
+
@@ -757,4 +758,4 @@
-
+
diff --git a/platforms/Windows/dbg/asserts/dbg.asserts.wixproj b/platforms/Windows/dbg/asserts/dbg.asserts.wixproj
new file mode 100644
index 00000000..aa21e7f8
--- /dev/null
+++ b/platforms/Windows/dbg/asserts/dbg.asserts.wixproj
@@ -0,0 +1,5 @@
+
+
+ dbg.asserts
+
+
diff --git a/platforms/Windows/dbg/asserts/dbg.asserts.wxs b/platforms/Windows/dbg/asserts/dbg.asserts.wxs
new file mode 100644
index 00000000..0f050b72
--- /dev/null
+++ b/platforms/Windows/dbg/asserts/dbg.asserts.wxs
@@ -0,0 +1,3 @@
+
+
+
diff --git a/platforms/Windows/dbg/dbg.wixproj b/platforms/Windows/dbg/dbg.wixproj
deleted file mode 100644
index 8a93eeab..00000000
--- a/platforms/Windows/dbg/dbg.wixproj
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
diff --git a/platforms/Windows/dbg/dbg.wxs b/platforms/Windows/dbg/dbg.wxi
similarity index 94%
rename from platforms/Windows/dbg/dbg.wxs
rename to platforms/Windows/dbg/dbg.wxi
index 94848bc2..8d9273e0 100644
--- a/platforms/Windows/dbg/dbg.wxs
+++ b/platforms/Windows/dbg/dbg.wxi
@@ -1,18 +1,19 @@
-
+
+
-
+
-
+
@@ -140,7 +141,7 @@
-
+
@@ -153,4 +154,4 @@
-
+
diff --git a/platforms/Windows/ide/asserts/ide.asserts.wixproj b/platforms/Windows/ide/asserts/ide.asserts.wixproj
new file mode 100644
index 00000000..1e311f8c
--- /dev/null
+++ b/platforms/Windows/ide/asserts/ide.asserts.wixproj
@@ -0,0 +1,5 @@
+
+
+ ide.asserts
+
+
diff --git a/platforms/Windows/ide/asserts/ide.asserts.wxs b/platforms/Windows/ide/asserts/ide.asserts.wxs
new file mode 100644
index 00000000..eb8aa1a4
--- /dev/null
+++ b/platforms/Windows/ide/asserts/ide.asserts.wxs
@@ -0,0 +1,3 @@
+
+
+
diff --git a/platforms/Windows/ide/ide.wixproj b/platforms/Windows/ide/ide.wixproj
deleted file mode 100644
index 8a93eeab..00000000
--- a/platforms/Windows/ide/ide.wixproj
+++ /dev/null
@@ -1,2 +0,0 @@
-
-
diff --git a/platforms/Windows/ide/ide.wxs b/platforms/Windows/ide/ide.wxi
similarity index 81%
rename from platforms/Windows/ide/ide.wxs
rename to platforms/Windows/ide/ide.wxi
index 97170e15..46e22e45 100644
--- a/platforms/Windows/ide/ide.wxs
+++ b/platforms/Windows/ide/ide.wxi
@@ -1,18 +1,19 @@
-
+
+
-
+
-
+
@@ -59,7 +60,7 @@
-
+
@@ -68,4 +69,4 @@
-
+
diff --git a/platforms/Windows/readme.md b/platforms/Windows/readme.md
index 80e8bd4f..d3783e11 100644
--- a/platforms/Windows/readme.md
+++ b/platforms/Windows/readme.md
@@ -216,7 +216,7 @@ Note that these GUIDs are substituted at bind time so they skip the normal valid
| Property | Description |
| -------- | ----------- |
-| BldUpgradeCode, CliUpgradeCode, DbgUpgradeCode, IdeUpgradeCode, RtlUpgradeCode, WindowsSDKUpgradeCode, AndroidSDKUpgradeCode | Upgrade codes for individual packages. Packages keep the same upgrade codes "forever" because MSI lets you specify version ranges for upgrades, which you can find in `shared/shared.wxs`. |
+| BldAssertsUpgradeCode, CliAssertsUpgradeCode, DbgAssertsUpgradeCode, IdeUpgradeCode, RtlUpgradeCode, WindowsSDKUpgradeCode, AndroidSDKUpgradeCode | Upgrade codes for individual packages. Packages keep the same upgrade codes "forever" because MSI lets you specify version ranges for upgrades, which you can find in `shared/shared.wxs`. |
| BundleUpgradeCode | Upgrade codes for the bundle. Bundles don't support upgrade version ranges, so the bundle upgrade code must change for every minor version _and_ stay the same for the entire lifetime of that minor version (e.g., v5.10.0 through v5.10.9999). You can keep the history of upgrade codes using a condition like `Condition="'$(MajorMinorProductVersion)' == '5.10'` or just replace BundleUpgradeCode when forking to a new minor version. |
diff --git a/platforms/Windows/shared/swift.en-us.wxl b/platforms/Windows/shared/swift.en-us.wxl
index 7b6517ea..efdf1d6c 100644
--- a/platforms/Windows/shared/swift.en-us.wxl
+++ b/platforms/Windows/shared/swift.en-us.wxl
@@ -3,9 +3,13 @@
+
+
+
+