BaseInstallerBuild/Bundle.wxs:46 pins the online bundle's .NET 4.8 payload to a single immutable CDN URL:
<?define NetFx48WebLink = https://download.visualstudio.microsoft.com/download/pr/2d6bb6b2-226a-4baa-bdec-798822606ff1/9b7b8746971ed51a1770ae4293618187/ndp48-web.exe ?>
674e62e chose this over go.microsoft.com/fwlink/?LinkId=2085155 so the bytes can never drift from the pinned Hash="4181398AA1FD5190155AC3A388434E5F7EA0B667" / Size="1439328". That is the right trade — but it leaves no fallback if Microsoft retires the path.
The ExePackage is Vital="yes", so a failed acquisition aborts the whole chain. If that URL stops resolving, every Online installer already in the field stops working, on machines that lack .NET 4.8.
Nothing would tell us. There is no CI in this repo, and the URL is only exercised on an end user's machine at install time.
Ask: a scheduled HEAD request against that URL, failing loudly. It turns a silent field outage into a notification, and the fix — repointing one ?define — is a one-line change we would otherwise make under pressure.
BaseInstallerBuild/Bundle.wxs:46pins the online bundle's .NET 4.8 payload to a single immutable CDN URL:674e62echose this overgo.microsoft.com/fwlink/?LinkId=2085155so the bytes can never drift from the pinnedHash="4181398AA1FD5190155AC3A388434E5F7EA0B667"/Size="1439328". That is the right trade — but it leaves no fallback if Microsoft retires the path.The
ExePackageisVital="yes", so a failed acquisition aborts the whole chain. If that URL stops resolving, every Online installer already in the field stops working, on machines that lack .NET 4.8.Nothing would tell us. There is no CI in this repo, and the URL is only exercised on an end user's machine at install time.
Ask: a scheduled
HEADrequest against that URL, failing loudly. It turns a silent field outage into a notification, and the fix — repointing one?define— is a one-line change we would otherwise make under pressure.