-
Notifications
You must be signed in to change notification settings - Fork 252
Full support of LSL
NuGet client in VS is not fully functional in LSL mode. Currently only restore operation is supported. The main problem is NuGetProject
and other components are not aware of LSL mode as all information from VS are retrieved via EnvDTE
or CPS API.
NuGet VS client needs to support LSL mode without breaking it.
Development activity is tracked in NuGet/Home#5058.
Operation | packages.config | project.json | PackageRef | .NET Core |
---|---|---|---|---|
Manage packages (solution) | Supported | Supported | Supported | N/A |
Manage packages (project) | Loads on right-click | Loads on right-click | Loads on right-click | N/A |
Install package (PM) | Loads project | |||
Uninstall package (PM) | Loads project | |||
Update package (PM) | Loads project | |||
Execute init.ps1 (PMC) |
Supported | |||
Add-BindingRedirect |
Loads project | |||
Find-Package |
Supported | |||
Get-Package |
Supported | |||
Get-Project |
Loads project | |||
Install-Package |
Loads project | |||
Open-PackagePage |
Supported | |||
Sync-Package |
Supported | |||
Tab expansion (PMC) | Supported | |||
Uninstall-Package |
Loads project | |||
Update-Package |
Loads project | |||
IVsPackageInstallerServices |
Supported | Supported | Supported |
A project adapter will be introduced to abstract away communication with EnvDTE
and CPS API where needed. The adapter implementation will be able to detect LSL mode and switch between data sources and APIs. It will force load project if no equivalent data is available in LSL DB.
Project services will be introduced where project system specific implementation is needed thus the project adapter alone won't fit.
In LSL mode it facilitates PackagesConfigReader
to retrieve package references. Works correctly in LSL mode for majority of read-only operations. For install, uninstall, update operations will force load project as it needs to update assembly references in the project.
Utilizes JsonPackageSpecReader
to get a PackageSpec for the project.
Relies on IDeferredProjectWorkspaceService
to get all necessary project data.
Does not support LSL. No action needed.
Check out the proposals in the accepted
& proposed
folders on the repository, and active PRs for proposals being discussed today.