.NET 7 (RC1) trimming results in error
See original GitHub issueI’ve just upgraded my project to .NET 7 and seen that it results in an error (when running):
Error setting value to option 'u, url': Check if Option or Value attribute values are set properly for the given type.
Error setting value to option 't, threads': Check if Option or Value attribute values are set properly for the given type.
etc..
https://github.com/KoalaBear84/OpenDirectoryDownloader/
If I build it with the following it fails (when running):
dotnet publish OpenDirectoryDownloader --configuration Release --framework net7.0 --runtime win-x64 -p:PublishTrimmed=true
If I remove the -p:PublishTrimmed=true
it works. This tells me it could be because of the trimming that will trim something that is important for this library.
Also tried with -p:TrimMode=Link
and -p:TrimMode=CopyUsed
, but it doesn’t make a difference, but found out that -p:TrimMode=partial
(Only worked with a lowercase p here) does, as it restores the behaviour of .NET 6.
Maybe this can be resolved at the library side, but I don’t have experience with that. https://learn.microsoft.com/en-us/dotnet/core/deploying/trimming/prepare-libraries-for-trimming
It would be nice if it can be solved, as more users will try/upgrade to .NET 7. Until then this issue will be helpful for everyone looking for a quick workaround.
Issue Analytics
- State:
- Created a year ago
- Reactions:4
- Comments:6 (1 by maintainers)
Top GitHub Comments
Tell the code-analyser to create all members of the options by an attribute (CliOptions is my options class):
[DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(CliOptions))] public static int Main( string[] args){ …
would fix that. Could that be set up somewhere inside commandLineParser?
Can somebody work up a DotNetFiddle for this? fork from https://dotnetfiddle.net/mh9CjX