--preferreduilang appears in fsi.CommandLineArgs when run from Msbuild and .NET 10 SDK
Repro steps
Provide the steps required to reproduce the problem:
- Build the attached FsiBugRepo.csproj from VS 22 or 26. Notice erroneous
--preferreduilang:en-USin the output from the fsx script - Run the
dotnet fsi fsi_test.fsxfrom the command line. Notice absence of option. Correct - Switch the SDK to the .NET 8 SDK and rebuild from VS. Notice absence of option. Correct.
Expected behavior
No additional command line args present in fsi.CommandLineArgs variable.
Actual behavior
presence of --preferreduilang:en-US where it shouldn't be
Known workarounds
None except to ignore the extra option.
Related information
- Operating system
- Windows 11
- VS 2026 18.1, VS 22 17.14.22
- .NET 10.0.101, .NET 8.0.319
This is attached by the VisualStudio integration into the VS project system, to automatically set the right locale for users.
That way, localized error messages get applied when used on OS with a different culture. Right now I cannot think of a mechanism to change that without breaking other users.
Changing the script logic to work with that is likely the best option.
Shouldn't that argument be applied before the -- to properly set the compiler setting for the fsi rather than passed to the script that is run by fsi? Is there handling in the generated entry point of a fsx that uses that argument?
Ok now I understand the desired change. Yes, that is true.