Customers very often have project files with a number of properties that are not in use anymore, or directly conflict with CoreCLR.
For example, the RunAotCompilation property is only applicable when using MonoMV, and will apparently break/confuse a build using CoreCLR.
Android has a build target named _CheckNonIdealConfigurations which will issue warnings if problems are found with a build configuration.
I suggest we add something similar. In some cases we know won't work (RunAotCompilation+CoreCLR) we might just show an error instead, which will likely be more helpful than the confused build error that happens later (or even worse: a successful, but broken, build).
Properties to handle
| Properties |
Action |
Message |
RunAotCompilation=true + UseMonoRuntime=false |
Error |
|
EnableSGenConc=true + UseMonoRuntime=false |
Warning |
EnableSGenConc has no effect with CoreCLR |
UseInterpreter=true + UseMonoRuntime=false |
Warning |
UseInterpreter has no effect with CoreCLR |
MtouchInterpreter + UseMonoRuntime=false |
Warning |
MtouchInterpreter has no effect with CoreCLR |
MtouchUseLlvm + UseMonoRuntime=false |
Warning |
MtouchUseLlvm has no effect with CoreCLR |
Customers very often have project files with a number of properties that are not in use anymore, or directly conflict with CoreCLR.
For example, the
RunAotCompilationproperty is only applicable when using MonoMV, and will apparently break/confuse a build using CoreCLR.Android has a build target named
_CheckNonIdealConfigurationswhich will issue warnings if problems are found with a build configuration.I suggest we add something similar. In some cases we know won't work (RunAotCompilation+CoreCLR) we might just show an error instead, which will likely be more helpful than the confused build error that happens later (or even worse: a successful, but broken, build).
Properties to handle
RunAotCompilation=true+UseMonoRuntime=falseEnableSGenConc=true+UseMonoRuntime=falseEnableSGenConchas no effect with CoreCLRUseInterpreter=true+UseMonoRuntime=falseUseInterpreterhas no effect with CoreCLRMtouchInterpreter+UseMonoRuntime=falseMtouchInterpreterhas no effect with CoreCLRMtouchUseLlvm+UseMonoRuntime=falseMtouchUseLlvmhas no effect with CoreCLR