WSLC SDK install fallback uses repair (#40908)
JohnMcPMS committed
Jun 25, 2026 at 14:15 UTC
b1ad7f25ee011000e94c4bb50834596462d78331
4 files changed
+15
-6
src/windows/WslcSDK/wslcsdk.cpp
+2
-1
@@ -1731,7 +1731,8 @@ try
1731
{
1732
callback(0);
1733
}
1734
- wsl::windows::common::install::UpdatePackage(true, false, false);
1734
+ // Use pre-release builds and repair semantics (required since this function uses the SDK binary version as a filter).
1735
+ wsl::windows::common::install::UpdatePackage(true, true, false);
1736
if (callback)
1737
{
1738
callback(100);
src/windows/common/install.cpp
+1
-1
@@ -101,7 +101,7 @@ int UpdatePackageImpl(bool preRelease, bool repair, bool callerOwnsProcess)
101
}
102
103
const bool msiInstall = wsl::shared::string::EndsWith<wchar_t>(release.name, L".msi");
104
- const auto downloadPath = DownloadFile(release.url, release.name);
104
+ const auto downloadPath = DownloadFile(release.url, release.name, callerOwnsProcess);
105
if (msiInstall)
106
{
107
auto logFile = std::filesystem::temp_directory_path() / L"wsl-install-logs.txt";
src/windows/common/wslutil.cpp
+11
-3
@@ -348,15 +348,23 @@ GUID wsl::windows::common::wslutil::CreateV5Uuid(const GUID& namespaceGuid, cons
348
return EndianSwap(newGuid);
349
}
350
351
-std::wstring wsl::windows::common::wslutil::DownloadFile(std::wstring_view Url, std::wstring Filename)
351
+std::wstring wsl::windows::common::wslutil::DownloadFile(std::wstring_view Url, std::wstring Filename, bool reportProgress)
352
{
353
wsl::windows::common::ConsoleProgressBar progressBar;
354
auto progress = [&](auto current, auto total) {
355
- progressBar.Print(current, total);
355
+ if (reportProgress)
356
+ {
357
+ progressBar.Print(current, total);
358
+ }
359
return true;
360
};
361
359
- auto cleanup = wil::scope_exit_log(WI_DIAGNOSTICS_INFO, [&]() { progressBar.Clear(); });
362
+ auto cleanup = wil::scope_exit_log(WI_DIAGNOSTICS_INFO, [&]() {
363
+ if (reportProgress)
364
+ {
365
+ progressBar.Clear();
366
+ }
367
+ });
368
369
return DownloadFileImpl(Url, Filename, progress);
370
}
src/windows/common/wslutil.h
+1
-1
@@ -209,7 +209,7 @@ std::wstring ConstructPipePath(_In_ std::wstring_view PipeName);
209
210
GUID CreateV5Uuid(const GUID& namespaceGuid, const std::span<const std::byte> name);
211
212
-std::wstring DownloadFile(std::wstring_view Url, std::wstring Filename);
212
+std::wstring DownloadFile(std::wstring_view Url, std::wstring Filename, bool reportProgress = true);
213
214
std::wstring DownloadFileImpl(std::wstring_view Url, std::wstring Filename, const std::function<void(uint64_t, uint64_t)>& Progress);
215