現在の.NET SDKは、Visual Studio 2017 update 15.3での.NET Standard 2.0エラーのターゲティングをサポートしていません


119

Target Framework .NET Standard 2.0でクラスライブラリプロジェクトを作成したい。

私は自分のVisual Studio 2017バージョンをバージョンに更新し、15.3Visual Studioインストーラーでチェック.NET Framework 4.7 SDKして.NET Framework 4.7 targeting pack手動でインストールしました。

.NET Standard 2.0プロジェクト/アプリケーションウィンドウの[ターゲットフレームワーク]コンボボックスには、まだオプションはありません。その.csprojためnetstandard2.0、ファイルのTargetFrameworkタグを手動でに変更しましたが、ビルドしようとした後、次のエラーが発生します。

現在の.NET SDKは、.NET Standard 2.0のターゲットをサポートしていません。.NET Standard 1.6以前をターゲットにするか、.NET Standard 2.0をサポートするバージョンの.NET SDKを使用します。


4
global.json.NET Core SDKを1.xに固定するファイルはありますか?.NET Core 2.0 SDKを個別にインストールしましたか?(私はそれがVSに含まれることを期待しますが、とにかくそれをインストールすることは害にはなりません。)
Jon Skeet

1
@JonSkeetによる.NET Core 2.0 SDKのインストールは個別に機能しました。ここに回答として提案を追加していただければ幸いです。
サハル

回答:


144

その特定のバージョンのVS2017アップデートをインストールしても、.NET Core 2.0 SDKはインストールされなかったようです。こちらからダウンロードできます。

インストール済みのSDKのバージョンを確認するには、次を実行します。

dotnet --info

コマンドラインから。global.json現在の作業ディレクトリまたは祖先ディレクトリのいずれかにファイルがある場合、実行されるSDKのバージョンが上書きされることに注意してください。(たとえば、プロジェクトに特定のバージョンを適用したい場合に便利です。)

コメントから判断すると、VS2017更新プログラムの一部のバージョンでは、.NET Core SDK インストールされます。時間の経過とともに多少異なる場合があります。


1
@Marwie:netstandard2.0をターゲットにするには、そうしているのではないかと思います。私は1.0 SDKでそれをターゲットにしたことはありませんが、失敗しても驚かないでしょう。もちろん、1.0 SDKでもnetstandard1.Xをターゲットにすることができます。
ジョンスキート

6
OK-私はこのテーマに慣れていません-.netコアと.net標準の密接な関係に驚きました-そのような依存関係を省略するために.net標準を作成する理由はありませんでしたか?なぜ別のパッケージで出荷されないのですか?
Marwie 2017

1
@Marwie:さて、.NET Core SDKは.NET Core Runtimeから分離されています。これは.NET Standardから分離されています。しかし、SDKは一連のターゲットフレームワークを「認識」しているので、将来のフレームワークでは機能しないことには驚きません。これは、Visual Studio 2013がC#7コードをコンパイルすることを期待するようなものです。.NET Core 2.0 SDKでnetstandard2.0をターゲットにする必要がないようにMSが設計した可能性はありますが、それでもIMOを使用するのは奇妙なユースケースです。
Jon Skeet 2017

3
すべての.net Core 1.x SDKをアンインストールした後、エラーを受け取りました。私にはまだマイクロソフトがいました。.NETコアSDK 2.0.2、2.0.3、2.1.1および2.1.2がインストールされ、VS 2017 5.2。一度、現在のマイクロソフトを手動でインストールしました。.NETコアSDK(2.1.3)プロジェクトを再びコンパイルできました。1.x SDKを削除すると、2.x SDKが壊れました。
SOHO開発者

2
@ジャスティン:わかりました。2.1.4SDKが正しくインストールされていないか、global.jsonファイルが古いバージョンに固定されているようです。
Jon Skeet

20

上記の答えは私の問題を解決しませんでしたが。私は最終的にこのリンクhttps://www.microsoft.com/net/download/visual-studio-sdksにアクセスしてVisual Studioに必要なSDKをダウンロードすることで解決しました。それは本当に混乱しました、そして私は理由がわかりませんが、それは私の問題を解決しました


私はこれに賛成するだけではなく、これも私の問題を解決しましたが、誰かがこの作業の背後にある理由を明確にしてくれることを願っています。
ベイタンカート

この解決策は私にとってもうまくいきました。私にとっては、最新のSDKとの非互換性の問題でした。Visual Studio 2017を使用している場合、.NET Core SDKの最新バージョンは使用できません。
ゼロ

11

私にとっての解決策はglobal.json、インストールされたバージョンを反映するようにバージョンを変更することでした。

他の人のように、バージョンはdotnet --infocmdで実行されていることがわかります

この:

{
  "projects": [ "src", "test" ],
  "sdk": {
    "version": "2.0.3"
  }
}

なりました:

{
  "projects": [ "src", "test" ],
  "sdk": {
    "version": "2.1.4"
  }
}

次のコマンドを実行して、global.jsonファイルを作成することもできます。

dotnet new globaljson --sdk-version 2.1.4

プロジェクトのルート


2
global.json存在する場合、そのファイルはどこにありますか?
Bruno Bieri 2018

msがそのファイルを削除したと思います。.slnファイルと.csprojファイルを確認してください:)
lsp

2
ファイルglobal.jsonはソリューションファイルの隣にあります。私は通常、ソリューション自体にソリューションアイテムとして含めました。実験で、ソリューションを閉じて再読み込みしないと、バージョンを変更すると、global.json奇妙なビルドエラーが発生する可能性があることがわかりました。私のコメントは、.NET Core SDK 2.2.100が適用されたVS2018バージョン15.9.2に適用されます。
Manfred

ドキュメントから .NET Core SDK looks for a global.json file in the current working directory ... or one of its parent directories。継承タイプのファイルのように。
StuartLC

10

これは、古いプロジェクトを開こうとしたときに時々起こります。プロジェクトのターゲットフレームワークを変更するのに役立ちます。Project- > projectname Properties ...に移動し、Targetフレームワークをインストールしたフレームワークに変更します。 プロジェクトのプロパティ


ドロップダウンメニューには何も表示されません。何か案は?
ダニー

9

これは私のために働いた

Visual Studioのインストールを使用する

「Workloads」タブで「.Net Core cross-platform development」をチェックし、「Modify」をクリックします

ここに画像の説明を入力してください

左メニューの「.NET Core 2.0開発ツール」を必ずチェックしてください。

ソース

注意

以前にAsp Net Coreをインストールしましたが、Visual Studioのインストールを使用してインストールした直後に表示されませんでした。


1
:別の方法として、あなたはここから必要なものをインストールすることができますdotnet.microsoft.com/download/...
user2173353

3

Visual Studioをバージョン15.5.1にアップグレードすると、.Net Core SDKが2.Xにアップグレードされたため、このエラーは発生しなくなりました。を実行するdotnet --infoと、次のように表示されます。

ここに画像の説明を入力してください


3

一部の.NET Core 1.xプレビューSDKをアンインストールした後、15.8.3でこれを実行したところ、アプリケーションがコンパイルされず、エラーが表示されました。

Windows 10 x64を使用している場合でも、最新のx86バージョンのSDKをインストールすることで修正されました。

これは、VS 2017がまだx86プログラムであり、プログラムがx64として実行されているにもかかわらず、コンパイラが適切なx86 SDKを探していたためだと思います


3

Visual Studio 2019と2017の両方をインストールしました。VS2017用の.NET Core 2.X SDKを個別にインストールしようとしましたが、うまくいきませんでした。

問題は、.NET Core 3.0 SDKがデフォルトのsdk-versionとしてインストールされていることです。これはVS2017には適していません。

私の解決策は、特定のプロジェクトのSDKバージョンを切り替えることでした。

  • まず、インストールされているSDKを一覧表示して、目的のバージョンを見つけます
$ dotnet --info

.NET Core SDK (reflecting any global.json):
 Version:   3.1.100
 Commit:    cd82f021f4

Runtime Environment:
 OS Name:     Windows
 OS Version:  10.0.18362
 OS Platform: Windows
 RID:         win10-x64
 Base Path:   C:\Program Files\dotnet\sdk\3.1.100\

Host (useful for support):
  Version: 3.1.0
  Commit:  65f04fb6db

.NET Core SDKs installed:
  1.1.14 [C:\Program Files\dotnet\sdk]
  2.1.202 [C:\Program Files\dotnet\sdk]
  2.1.509 [C:\Program Files\dotnet\sdk]
  2.2.110 [C:\Program Files\dotnet\sdk]
  3.0.100 [C:\Program Files\dotnet\sdk]
  3.1.100 [C:\Program Files\dotnet\sdk]
  • ソリューションディレクトリから:
$ dotnet new globaljson --sdk-version 2.2.110 --force

これで、dotnetこのソリューションに指定されたSDKバージョンを使用します。

私は、3.0プロジェクトをめちゃくちゃにせずにシステム全体でこれを行う方法を見つけていません。


これが必要なのは奇妙に思われますが、global.json(バージョン2.1.513用)を改善することで私の問題も解決しました。
8128

2

実際、私にとってそれは別の答えとは逆の方法で起こりました。

私は、インストールした 最新の.NETのコアSDKを 問題が登場する前に(私の場合は3.0.0-preview2)をVisual Studioの(いないことを確認して、任意の違いを作るならば)の最新バージョンを持っていません。

したがって、解決策、最新の.NET Core SDKをアンインストールすることでした。(必要に応じてこれは完璧ではないので、Visual Studioを最新のものにアップグレードすることを検討するかもしれませんが、少なくともそれによって進行中の問題は解決されました)。


1

私はこの問題を経験しました。私の場合、動作するスクリプトがありました

SET devenvPath=C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\devenv.exe
"%devenvPath%" mySolution.sln /Rebuild "DebugWithUT|AnyCpu" /Out mySolution.Build.log

今日、私はこの正確なエラーを得始めました。しかし、今は前日VS2019をインストールしたことを覚えています。それはVS2017のために何かを変えたように見えます。私はVS2017アップデートに行き、最新バージョン/アップデートをインストールし、それを修正しました。


0

同じ問題があり、最新バージョンのMicrosoft Visual Studio Community 2017バージョン15.7.3を持っています

最新のSDK 2.1をダウンロードしたところ、ターゲティングの問題はなくなりました。 https://www.microsoft.com/net/download/thank-you/dotnet-sdk-2.1.301-windows-x64-installer

情報:Microsoft Visual Studio Community 2017バージョン15.7.3 VisualStudio.15.Release / 15.7.3 + 27703.2026 Microsoft .NET Frameworkバージョン4.7.03056

インストールされているバージョン:コミュニティ

C#ツール2.8.3-beta6-62923-07。コミットハッシュ:7aafab561e449da50712e16c9e81742b8e7a2969 IDEで使用されるC#コンポーネント。プロジェクトのタイプと設定に応じて、異なるバージョンのコンパイラが使用される場合があります。

共通のAzureツール1.10 AzureモバイルサービスとMicrosoft Azureツールで使用する共通のサービスを提供します。

NuGetパッケージマネージャー4.6.0 Visual StudioのNuGetパッケージマネージャー。NuGetの詳細については、http: //docs.nuget.org/にアクセスしてください。

ProjectServicesPackage Extension 1.0 ProjectServicesPackage Visual Studio Extension詳細情報

ResourcePackage Extension 1.0 ResourcePackage Visual Studio Extension詳細情報

Visual Basicツール2.8.3-beta6-62923-07。コミットハッシュ:7aafab561e449da50712e16c9e81742b8e7a2969 IDEで使用されるVisual Basicコンポーネント。プロジェクトのタイプと設定に応じて、異なるバージョンのコンパイラが使用される場合があります。

Visual Studioコードデバッグアダプターホストパッケージ1.0 Visual StudioでVisual Studioコードデバッグアダプターをホストするための相互運用層

UnityのVisual Studioツール3.7.0.1 UnityのVisual Studioツール


0

Visual Studio用のx64 SDKだけでなく、x86 SDKをダウンロードしてください。


0

現在の.NET SDKが.NET Core 3.1のターゲットをサポートしていないのと同じ問題がありました。.NET Core 1.1以前をターゲットにするか、.NET Core 3.1をサポートするバージョンの.NET SDKを使用します。

1)マシンに.NetコアSDKがインストールされていることを確認します。.NETをダウンロード

2)PATH環境変数を以下のパスに設定します


0

TFSでソリューションを構築しようとしたときにこの問題が発生しました。「dot net publish」タスクを使用していました。msbuildを使用すると、私たちにとって氷が壊れました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.