-
-
Notifications
You must be signed in to change notification settings - Fork 8.5k
[dotnet] Re-pack Selenium Manager as native dependency #16048
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
PR Reviewer Guide 🔍(Review updated until commit 5c40a80)Here are some key observations to aid the review process:
|
PR Code Suggestions ✨Latest suggestions up to 5c40a80
Previous suggestions✅ Suggestions up to commit da351d4
|
I have tested:
|
Finally I am satisfied with these changes, as step forward! |
I even tested VS 2017 with .NET Framework 4.6.1, it works. It also respects |
User description
##Why##
When user installs NuGet package, it automatically copies all SM binaries to his output. We could be smarter and copy only necessary binary, for instance if the project is supposed to run on Windows only, we don't need to copy Linux/MacOS binaries. But can we be smarter than .NET SDK?
##How##
Consider SM binary as simple "native library", which is supported by NuGet. Just put all binaries to
runtimes
directory per target. Now .NET SDK is responsible to copy the binaries.Example: I am building .NET Framework 4.8 console application, and I see:
Or if I publish my application for specific RID, only necessary binary is now a part of my application. Fixes #15768
PR Type
Enhancement
Description
Repackage Selenium Manager as native dependency using NuGet runtime folders
Improve binary discovery logic with multiple probing paths
Support single-file and AOT deployment scenarios
Add legacy packages.config compatibility
Changes diagram
Changes walkthrough 📝
1 files
Enhanced binary discovery with multiple probing paths
7 files
Updated build paths for new directory structure
Changed package paths to runtimes structure
Updated packaging to use runtimes directories
Changed package paths to runtimes structure
Updated asset file paths
New MSBuild targets for legacy support
Transitive targets import configuration
2 files
Removed old MSBuild targets file
Removed manual Selenium Manager import
1 files
Added comprehensive package documentation