Make shell execution explicit for literal HTTP URL launches
ProprietaryOpt-in desktop compatibility port of resolved Process.Start(string) calls whose sole argument is a valid absolute HTTP/HTTPS string literal or a regular/verbatim interpolation with a valid literal HTTP prefix, or a built-in concatenation rooted at one (string/object/primitive/Version suffixes), or a closed single-use string local initialized to one, or a bound same-source const string field initialized by an HTTP/HTTPS literal, or Start(ProcessStartInfo) with an explicit inline BCL ProcessStartInfo(string) carrying an eligible expression and no object initializer. Use ProcessStartInfo with UseShellExecute=true; retain existing settings constructors and descriptors when adding only an initializer, preserving the original URL expression, caller and evaluation. Do not retarget projects or join version upgrades. Keep eligible local/constant declarations and initialization in place. Leave borrowed/aliased/reassigned/escaped/multiply-used variable/dynamic-host/raw-interpolated/relative/other-scheme inputs and custom-operator concatenations, named/other overloads, selector comments, custom/unresolved calls, lambdas/query bodies, generic declarations and conditional snapshots unchanged. Validate the target desktop environment; this does not establish browser availability or support in UWP/headless hosts.
OpenRewrite. Recipes. CSharp. Migration. Dotnet. Net3_0. UseShellExecuteForLiteralHttpUrlsmod run . --recipe= OpenRewrite. Recipes. CSharp. Migration. Dotnet. Net3_0. UseShellExecuteForLiteralHttpUrlsInstall it once, then run it on every repository under the current directory. New to the Moderne CLI? Set it up.