C#程序如何检测它是在C#版本下编译的,该版本不包含对该程序中使用的语言功能的支持?
当遇到它不支持的语言的功能时,C#编译器将拒绝该程序并产生一些错误消息.这并没有解决这个问题,即说明程序是用旧版本的C#编译器编译的,或者是不支持所需版本的C#的C#编译器.
理想情况下,它会如此简单
#if CS_VERSION < 3
#error CSharp 3 or later is required
#end
Run Code Online (Sandbox Code Playgroud)
我不相信您可以使用 C# 文件来做到这一点,但如果您使用的是 MSBuild,那么项目/解决方案工具版本号可以阻止它使用旧版本的 MSBuild 进行构建。
您能给出具体的背景吗?一种“人类”解决方案而不是技术解决方案可能是尝试使用所有“旧”版本编译代码,并创建一个文档:“如果出现这样的错误,则可能意味着您使用了错误的版本。 ..”
您可能需要考虑使之变得更简单的另一个选择是拥有一个“所需功能”文件。您的主应用程序将不会使用它,但请用户首先对其进行编译。如果它有效,那么构建的其余部分应该可以工作。如果没有,则是由于使用了错误的版本。这可能会从不同版本产生较小范围的错误(特别是它不存在编译器可以以随机顺序列出来自不同文件的错误的问题)。
| 归档时间: |
|
| 查看次数: |
501 次 |
| 最近记录: |