我从一个net6.0
岁的项目开始.并决定为较旧的受支持版本提供netstandard2.0
作为内部Nuget输出.
在.proj文件中将<TargetFramework>net6.0</TargetFramework>
替换为<TargetFrameworks>net6.0;netstandard2.0</TargetFrameworks>
.现在有了这个
不过,问题在于使用了可为空的引用类型.net6.0
和netstandard2.0
使用不同的语言版本
我明白我必须做其中一件事
- 将Net6.0的语言降级
- 使用某些公共文件和其他单独的文件创建单独的项目
- 使用条件编译
我try 了条件编译
结果表明,当前的主动框架为netstandard2.0
.我在想,怎么才能改变这一点?我在项目级的"条件编译符号"中为"Debug and net6.0 Custom Symbol"添加了符号.我可以换成那样.现在,我设置了符号,使netstandard2.0
处于活动状态.我重建了我所看到的-它编译成了bin\Debug\net6.0
,但bin\Debug\netstandard2.0
什么都没有.我也收到了错误-
错误CS8630对于C#7.3,‘Null’值无效:‘Enable’.请使用语言版本‘8.0’或更高版本.项目名称(net6.0)C:\dev\Components\项目名称\csc 1活动
没有一个文件内部有错误.所有引用/包似乎都解决得很好.我删除了代码文件中所有特定于net6.0的代码片段.这里需要一些建议.谢谢