Conversation
…udio integration with WSL.
…oft#14076)" This reverts commit 4b23185.
OneBlue
left a comment
There was a problem hiding this comment.
Change LGTM. Let's cleanup the diff a bit (undo the unrelated spaces / line ending changes) and I think we can merge it as long as @craigloewen-msft is OK with this
Thanks for looking at the PR, does the clean up include the |
…/WSL into addVSInfoToSettings
…soft#14076)" This reverts commit d97e275.
I'd prefer that so we can maintain the history on that file (or format it in a dedicated change). I usually open it with a text editor to avoid adding extra formatting changes |
Sounds good, Should be tidied up now, and it does look a lot cleaner :). |
There was a problem hiding this comment.
Pull request overview
Adds a new Visual Studio integration page to the wslsettings first-run (OOBE) experience, analogous to the existing VS Code integration page.
Changes:
- Introduce
VSIntegrationPage+VSIntegrationViewModeland wire them into DI +PageService. - Add a new OOBE navigation item and protocol navigation route (
vsint) to open the page directly. - Add localized strings and new image assets for the Visual Studio integration page/icon.
Reviewed changes
Copilot reviewed 9 out of 11 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| src/windows/wslsettings/Views/OOBE/VSIntegrationPage.xaml.cs | Adds code-behind for the new OOBE page and resolves its ViewModel via DI. |
| src/windows/wslsettings/Views/OOBE/VSIntegrationPage.xaml | Defines the new OOBE UI content (text + links) and hero image binding. |
| src/windows/wslsettings/Views/OOBE/ShellPage.xaml | Adds a new NavigationView item for “Visual Studio Integration” in the OOBE sidebar. |
| src/windows/wslsettings/ViewModels/OOBE/VSIntegrationViewModel.cs | New ViewModel type for the VS integration page. |
| src/windows/wslsettings/Services/PageService.cs | Registers the ViewModel→Page mapping for navigation. |
| src/windows/wslsettings/CMakeLists.txt | Ensures new assets and new page/viewmodel files are included in the build. |
| src/windows/wslsettings/App.xaml.cs | Registers the new page + ViewModel with the service container. |
| src/windows/wslsettings/Activation/ProtocolActivationHandler.cs | Adds protocol route vsint to navigate directly to the new OOBE page. |
| localization/strings/en-US/Resources.resw | Adds localized strings + URLs for the page and navigation item. |
| Images/SettingsOOBEVSIcon.png | Adds the Visual Studio icon used in the OOBE navigation list. |
src/windows/wslsettings/Activation/ProtocolActivationHandler.cs
Outdated
Show resolved
Hide resolved
| @@ -28,6 +29,7 @@ file(CREATE_LINK ${CMAKE_SOURCE_DIR}/images/SettingsOOBEGPUAcceleration.gif ${BI | |||
| file(CREATE_LINK ${CMAKE_SOURCE_DIR}/images/SettingsOOBEGUIApps.png ${BIN}/${TargetApp}/Assets/SettingsOOBEGUIApps.png) | |||
| file(CREATE_LINK ${CMAKE_SOURCE_DIR}/images/SettingsOOBENetworkingIntegration.png ${BIN}/${TargetApp}/Assets/SettingsOOBENetworkingIntegration.png) | |||
| file(CREATE_LINK ${CMAKE_SOURCE_DIR}/images/SettingsOOBEVSCodeIntegration.png ${BIN}/${TargetApp}/Assets/SettingsOOBEVSCodeIntegration.png) | |||
| file(CREATE_LINK ${CMAKE_SOURCE_DIR}/images/SettingsOOBEVSIntegration.png ${BIN}/${TargetApp}/Assets/SettingsOOBEVSIntegration.png) | |||
There was a problem hiding this comment.
The new file(CREATE_LINK ...) entries reference ${CMAKE_SOURCE_DIR}/images/..., but this repo’s assets folder is Images/ (capital I) and there is no images/ directory in a case-sensitive filesystem. If we ever build/configure this target in a case-sensitive checkout, these links will fail; consider aligning the casing (ideally via a shared variable) while touching this section.
See below for a potential fix:
set(WSLSETTINGS_IMAGES_DIR ${CMAKE_SOURCE_DIR}/Images)
# Symlink the icon in the output directory to make local development easier
file(CREATE_LINK ${WSLSETTINGS_IMAGES_DIR}/wsl.ico ${BIN}/${TargetApp}/Assets/wsl.ico)
file(CREATE_LINK ${WSLSETTINGS_IMAGES_DIR}/wslbw.ico ${BIN}/${TargetApp}/Assets/wslbw.ico)
file(CREATE_LINK ${WSLSETTINGS_IMAGES_DIR}/SettingsOOBEDockerIcon.png ${BIN}/${TargetApp}/Assets/SettingsOOBEDockerIcon.png)
file(CREATE_LINK ${WSLSETTINGS_IMAGES_DIR}/SettingsOOBEFileExplorerIcon.png ${BIN}/${TargetApp}/Assets/SettingsOOBEFileExplorerIcon.png)
file(CREATE_LINK ${WSLSETTINGS_IMAGES_DIR}/SettingsOOBEVSCodeIcon.png ${BIN}/${TargetApp}/Assets/SettingsOOBEVSCodeIcon.png)
file(CREATE_LINK ${WSLSETTINGS_IMAGES_DIR}/SettingsOOBEVSIcon.png ${BIN}/${TargetApp}/Assets/SettingsOOBEVSIcon.png)
file(CREATE_LINK ${WSLSETTINGS_IMAGES_DIR}/SettingsOOBECrossOSFileAccess.gif ${BIN}/${TargetApp}/Assets/SettingsOOBECrossOSFileAccess.gif)
file(CREATE_LINK ${WSLSETTINGS_IMAGES_DIR}/SettingsOOBEDistroManagement.png ${BIN}/${TargetApp}/Assets/SettingsOOBEDistroManagement.png)
file(CREATE_LINK ${WSLSETTINGS_IMAGES_DIR}/SettingsOOBEDockerDesktopIntegration.png ${BIN}/${TargetApp}/Assets/SettingsOOBEDockerDesktopIntegration.png)
file(CREATE_LINK ${WSLSETTINGS_IMAGES_DIR}/SettingsOOBEGeneral.png ${BIN}/${TargetApp}/Assets/SettingsOOBEGeneral.png)
file(CREATE_LINK ${WSLSETTINGS_IMAGES_DIR}/SettingsOOBEGPUAcceleration.gif ${BIN}/${TargetApp}/Assets/SettingsOOBEGPUAcceleration.gif)
file(CREATE_LINK ${WSLSETTINGS_IMAGES_DIR}/SettingsOOBEGUIApps.png ${BIN}/${TargetApp}/Assets/SettingsOOBEGUIApps.png)
file(CREATE_LINK ${WSLSETTINGS_IMAGES_DIR}/SettingsOOBENetworkingIntegration.png ${BIN}/${TargetApp}/Assets/SettingsOOBENetworkingIntegration.png)
file(CREATE_LINK ${WSLSETTINGS_IMAGES_DIR}/SettingsOOBEVSCodeIntegration.png ${BIN}/${TargetApp}/Assets/SettingsOOBEVSCodeIntegration.png)
file(CREATE_LINK ${WSLSETTINGS_IMAGES_DIR}/SettingsOOBEVSIntegration.png ${BIN}/${TargetApp}/Assets/SettingsOOBEVSIntegration.png)
There was a problem hiding this comment.
Will leave this as-is unless a reviewer would like it to change. My thinking was to copy the pattern elsewhere in the file.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Summary of the Pull Request
Adding a page to first run experience for Visual Studio integration.
PR Checklist
Detailed Description of the Pull Request / Additional comments
Added a new page for Visual Studio, the implementation is a copy of the VSCode page.
Validation Steps Performed
Ran wslsettings app and tested experience
Ran test.bat