我有一个包含许多解决方案的大型 WPF 应用程序,每个解决方案都有许多项目。IronRuby (v1.0.4) 脚本用于按顺序编译所有项目。
问题陈述:
IronRuby 脚本无法编译使用“nameof”运算符的项目,并出现以下错误:
The name 'nameof' does not exist in the current context
- 在装有 Visual Studio 2017 和 2019 的机器上会出现故障。
- 在装有 Visual Studio 2015 的机器上运行良好。
- 如果我在 VS 20XX 中单独编译项目,项目会被正确编译——但这违背了拥有 IR 脚本的目的。
我到处搜索,但找不到它不适用于更高版本的 Visual Studio 的原因。
软件堆栈:
1. IronRuby 版本:1.0.4
2. 网络版本:4.5.2 及以上
3. 工作 VS 版本:2015 更新 3
3.(a) MSBuild 工具版本:14.0
C:\Program Files (x86)\MSBuild\14.0\Bin>MSBuild.exe -version Microsoft (R) Build Engine version 14.0.27522.0 版权所有 (C) Microsoft Corporation。版权所有。
14.0.27522.0
3.(b) 从命令提示符编译项目时的消息:
Microsoft (R) Build Engine version 14.0.27522.0
Copyright (C) Microsoft Corporation. All rights reserved.
- 不工作的 VS 版本:2019 (v16.2.3)
4.(a) MSBuild 工具版本:16.0
C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin>MSBuild.exe -version Microsoft (R) Build Engine version 16.2.37902+b5aaefc9f for .NET Framework 版权所有 (C) Microsoft Corporation . 版权所有。
16.2.37902.0
4.(b) 从命令提示符编译项目时的消息:
Microsoft (R) Build Engine 版本 4.7.3190.0
[Microsoft .NET Framework,版本 4.0.30319.42000] 版权所有 (C) Microsoft
Corporation。版权所有。
- 两台机器上的 MSBuild 版本给出了相同的结果:
C:\Windows\Microsoft.NET\Framework\v4.0.30319>MSBuild.exe -version Microsoft (R) Build Engine version 4.7.3190.0 [Microsoft .NET Framework, version 4.0.30319.42000] Copyright (C) Microsoft Corporation. All rights reserved. 4.7.3190.0
将 3(a)、3(b) 与 4(a)、4(b) 进行比较,看起来在更高版本的 VS 构建引擎中存在断开连接,但我无法解决阻止我去的问题到更高的VS版本。
任何帮助表示赞赏。
谢谢,
RDV