2017-09-26 2 views
5

C# 7.1 language featuresをVisual Studio 2017で使用するには、<LangVersion>latest</LangVersion>という設定をプロジェクトファイルに追加します。MSBuildでC#7.1を使用する

しかし、エラーになり(C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild\15.0\Binに位置バージョン15.3.409.57025、)のMSBuildからこのようなプロジェクトを構築:

CSC : error CS1617: Invalid option 'latest' for /langversion; 
must be ISO-1, ISO-2, Default or an integer in range 1 to 6. 

すると、この機能はまだMSBuildのでサポートされていない、またはそれがこれを取得することも可能ですワーキング?

これは200 +彼らは、クリックのたくさんを保存して、表示されるTarget Framework Migratorツールを(使用しているすべての.NET 4.7に再ターゲットとした、もともと2013年のVisual Studioで様々に作成されたプロジェクトと2015年カバー - 検査に基づいています。 csprojファイルの変更 - ジョブを正しく実行するため)。

プロジェクトのすべては、Visual Studioから首尾2017

+0

csprojファイルのコンテンツを共有できますか? –

+0

MSBuildはどこにありますか?ここでは 'C:¥Program Files(x86)¥Microsoft Visual Studio¥2017¥Professional¥MSBuild¥15.0¥Bin'にあり、言語要素を追加すると動作します。あなたのプロジェクトはVisual Studioからビルドされていますか? –

+0

プロジェクトファイル以外のファイルを表示できますか? –

答えて

0

私たちのMVCプロジェクトがこの問題を引き起こしていることを発見しました。修正するには

、我々は1.0.7にバージョン1.0.0 からこれらのプロジェクトで使用されるMicrosoft.CodeDom.Providers.DotNetCompilerPlatform NuGetパッケージを更新しました。

0

を構築し、私はここにC#7.1を使用してC#のコンソールアプリケーションとソリューションを持っています。

VS 2017コマンドライン(したがってMSBuild 15.3.409.57025)を使用すると正常に動作しました。 (.csproj<LangVersion>latest</LangVersion>を含んでいます。)

Is this feature just not yet supported by MSBuild, or is it possible to get this working?

はいそうです。

csc.exeのインスタンスは実行されていますが、そのバージョンは何ですか?バージョンを引用しているにもかかわらず、csc.exeのバージョンが間違っています(エラーメッセージには1-6と表示され、C#7は動作しません)。

+0

あなたが提案する解決策は何ですか? OPの手順に説明されているように、すべてがうまく動作しているようです。 –

+0

@リチャード - 質問のいくつかに対処するために私の質問を更新しました –

+1

@PatrickHofman質問の実体的な部分に取り組んでいることを明確にするために更新されました。 – Richard

6

Microsoft.Net.Compilersパッケージ(バージョン2.3.x、C#7.1を入手する)への参照を追加してください。

短いdescription of the package

Microsoft.Net.Compilers

This package not only includes the C# and Visual Basic compilers, it also modifies MSBuild targets so that the included compiler versions are used rather than any system-installed versions. Once installed, this package requires Microsoft Build Tools 2015.

+0

これは私のためのトリックでした。私のメインプロジェクトにはパッケージがありましたが、今日はC#7.1の参照プロジェクトを更新し、このNuGetパッケージがないことを忘れてしまいました。私はこの正確な問題を受け取りました - VSでビルドしますが、ビルドサーバーでは失敗します。 チップをありがとう! –

+1

実際には...私の問題は、私がDEBUGプロジェクトのプロパティ設定の値を変更したことも原因でした。 RELEASEの設定を見ても、それはまだC#(最新のメジャーバージョン)でした。それを変更し、チェックインして別のビルドをやります。今幸せです :) –

2

ちょうどあなたがDebugReleaseで少なくともC# 7.1以上のセットを持っていることを確認してください。最新に設定すると、ではなく、が動作します。 Microsoft.Net.Compilers nugetパッケージが動作しないため、インストールする必要はありません。

また、最新のMSBuildバージョンを実行していることを確認してください。

preview

関連する問題