Clarify ensureDotnetDependencies arguments & fix script #2730
Open
nagilson wants to merge 13 commits into
Open
Clarify ensureDotnetDependencies arguments & fix script #2730nagilson wants to merge 13 commits into
nagilson wants to merge 13 commits into
Conversation
Document that the legacy dotnet.ensureDotnetDependencies command is intended to probe a specific dotnet DLL payload, matching the C# extension language server usage. Update IDotnetEnsureDependenciesContext to include string[] alongside the previously published SpawnSyncOptionsWithStringEncoding shape. This is not a breaking change because string[] is the runtime behavior existing callers already use today. Add focused functional coverage for the --info signal path and the DLL payload path.
Contributor
There was a problem hiding this comment.
Pull request overview
This PR clarifies the intended contract for the legacy dotnet.ensureDotnetDependencies command (probing a specific .NET DLL payload), updates the published context type to match existing runtime usage, and adjusts Linux dependency installation behavior and coverage.
Changes:
- Expand
IDotnetEnsureDependenciesContext.argumentsto acceptstring[]in addition toSpawnSyncOptionsWithStringEncoding. - Update the Linux prereqs install script (additional deps check + Debian libicu package pattern) and add a focused unit test for the Debian path.
- Add functional tests covering the
--infodependency-signal path and the “DLL payload starts” path; update command documentation accordingly.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| vscode-dotnet-runtime-library/src/test/unit/LinuxPrereqsInstallerScript.test.ts | Adds unit coverage for Debian prereqs installation behavior (incl. libicu pattern). |
| vscode-dotnet-runtime-library/src/IDotnetEnsureDependenciesContext.ts | Publishes arguments as `string[] |
| vscode-dotnet-runtime-library/install scripts/install-linux-prereqs.sh | Fixes additional-deps string check and updates Debian libicu install pattern. |
| vscode-dotnet-runtime-extension/src/test/functional/DotnetCoreAcquisitionExtension.test.ts | Adds functional tests for dotnet.ensureDotnetDependencies prompt/no-prompt scenarios. |
| vscode-dotnet-runtime-extension/src/extension.ts | Updates ensureDotnetDependencies handler to handle the new union type. |
| Documentation/commands.md | Documents the intended probe shape and clarifies arguments typing/behavior. |
… to use net10 not net2.2 and allow custom dll
… folder for the scripts
nagilson
commented
Jun 19, 2026
….com/nagilson/vscode-dotnet-runtime into nagilson-fix-icu-and-ensure-deps-doc
nagilson
commented
Jun 19, 2026
….com/nagilson/vscode-dotnet-runtime into nagilson-fix-icu-and-ensure-deps-doc
nagilson
commented
Jun 19, 2026
…ample that uses it
….com/nagilson/vscode-dotnet-runtime into nagilson-fix-icu-and-ensure-deps-doc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resolves #2728
ensureDotnetDependenciesis a legacy, unsupported command. However, this aims to improve the command functionality to support first party teams until a better solution is implemented.To test, you'd need to download and package/run the sample extension and vscode extension on a ubuntu image without
libicuinstalled, then runsample: run a hello world appcommand and follow the prompts to installlibicuand see that it now works whereas before it did not.I tried this out myself and it seems to work now.
Fixes
Document that the legacy
dotnet.ensureDotnetDependenciescommand is intended to probe a specific dotnet DLL payload.Update the script to find newer versions of
libicuand also provide a failure code instead of no information upon failure.Update the script to call the correct function to check dependencies as it was actually calling an undefined function so it didn't work a lot of the time.
Update
IDotnetEnsureDependenciesContextto include string[] alongside the previously published SpawnSyncOptionsWithStringEncoding shape. This is not a breaking change becausestring[]is the runtime behavior existing callers already use today and the arguments were incorrect previously.Updates the test hello world app to net10 instead of
netframework2.2for hygiene and sanity to make suredotnetstill exits the same way if it fails to load a dependency.Adds some less than ideal but functional tests to try to prevent regression of the script.