多くのソリューションを含む大規模な 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 update 3
3.(a) MSBuild ツール バージョン: 14.0
C:\Program Files (x86)\MSBuild\14.0\Bin>MSBuild.exe -version Microsoft (R) Build Engine バージョン 14.0.27522.0 Copyright (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 バージョン 16.2.37902+b5aaefc9f for .NET Framework Copyright (C) Microsoft Corporation . 全著作権所有。
16.2.37902.0
4.(b) コマンド プロンプトからプロジェクトをコンパイルする際のメッセージ:
Microsoft (R) Build Engine バージョン 4.7.3190.0
[Microsoft .NET Framework、バージョン 4.0.30319.42000] Copyright (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 バージョンの wrt ビルド エンジンに切断があるように見えますが、実行を妨げている問題を解決できません。より高いVSバージョンに。
どんな助けでも大歓迎です。
ありがとう、
RDV