プロジェクトが「.NETFramework、Version = v4.5」フレームワークを参照していません。


91

VS 2015を使用しています。

プロジェクトが ".NETFramework、Version = 4.5"フレームワークを参照していません。project.jsonの「frameworks」セクションに「.NETFramework、Version = 4.5」への参照を追加してから、NuGetリストアを再実行します。

MVCレイヤーに追加した直後に、データアクセスレイヤーとビジネスロジックレイヤーでこのエラーが発生します。それまでは問題なく動作していましたが、このエラーの原因はわかりません。これが私のproject.jsonです:

{
  "version": "1.0.0-*",
  "description": "foo bar Class Library",
  "authors": [ "foo bar" ],
  "tags": [ "" ],
  "projectUrl": "",
  "licenseUrl": "",

  "frameworks": {
    "net451": { },
    "dotnet5.4": {
      "dependencies": {
        "Microsoft.CSharp": "4.0.1-beta-23516",
        "System.Collections": "4.0.11-beta-23516",
        "System.Linq": "4.0.1-beta-23516",
        "System.Runtime": "4.0.21-beta-23516",
        "System.Threading": "4.0.11-beta-23516"
      }
    }
  }
}

これが私が試したものです:

  1. この回答にあるように、「dotnet5.4」を「net451」に置き換えて(そして削除して)ください。

結果は同じエラーです。

  1. 「dotnet5.4」を「net45」に置き換え、「net451」のままにします。これにより、新しいエラーが発生します。

あなたのproject.jsonにはランタイムセクションがありません。'.runtimes':{"win":{}} 'をproject.jsonに追加してから、NuGetリストアを再実行してください。

このエラーが示唆したように私はやってみて追加しました

"runtimes": {
    "win":  {}
  },

これは私にこのエラーをもたらしました、私は過去に移動することができないようです:

あなたのproject.jsonは、ターゲットランタイムとして「win」をリストしていません。project.jsonの「runtimes」セクション内に「win」:{}」を追加してから、NuGetリストアを再実行する必要があります。

私はすでに「勝つ」を加えました、そしてこれは赤いニシンのように感じ始めています。project.jsonを直接変更して何をしていますか?NuGetはこれを処理していませんか?


最初の部分では、プロジェクトの設定に移動し、Target Frameworkを4.5に設定します
Hirbod Behnam '24

すでにそのように設定されています。
S.ラブランドECY 2016年

1
@ S.LovelandECYこれは解決しましたか?4.5.1、4.5.2、4.6のいずれを使用しても同じ問題が発生します。すべてのプロジェクトで、同じフレームワークバージョンが使用されています。
ティエリー

@ S.LovelandECYあなたはそれと最高投票の回答の間の投票の間の格差を考慮して、受け入れられた回答を変更することを検討したいかもしれません
21:01のRJFalconer

回答:


10

私は実際に問題を理解しました。結局Restore Nuget Packages、ソリューションレベルでクリックし、PCLファイルをコンパイルして、残りのソリューションをコンパイルしました。

お役に立てれば。


1
この答えが私にとって適切でした。
kovac

186

これと同じ問題が発生し、フォルダーbinobjフォルダーのコンテンツを削除するだけでなく.vs、ソリューションのディレクトリも削除する必要がありました。


1
.vsが私に問題を引き起こしていました
Lukas

7
これが私にとっての解決策でした!
Riki

9
.vsは必要ありませんでした。ありがとう!
geynske006 2017

2
きちんと感謝する方法がわかりません。私はこの問題を理解しようと、1時間のほとんどの間頭を悩ませてきました。3つすべてを削除し、チャームのように動作します。+1
tfrascaroli 2017

2
この問題は、私のローカル開発ボックスでGitHubブランチを切り替えることによって引き起こされていると疑っています。つまり、私は1つのブランチで作業し、コンパイルはリポジトリの一部ではない多数のファイルを作成します。次に、別のブランチをチェックアウトしましたが、これらの非リポジトリファイルはまだ残っています。どういうわけか、それらは新しくチェックアウトされたファイルと競合します。
Phoeniceus Agelaius

127

私は同じ問題を抱えていました-これは、project.jsonの代わりに.csprojファイルを使用するVisual Studio 2017.3を使用しても発生します。興味深いことに、エラーメッセージにはまだ「project.json」というテキストが含まれています。

この問題の原因は、ここで説明するようにobj\project.assets.json、以前のビルドからのロックファイルまたはロックファイル(VSのバージョンによって異なります)であり、クリーン中に削除されないようです

手動で/objディレクトリを削除することは、迅速な回避策です。

「新しい」プロジェクト(例:.NET CoreまたはVS 2017で作成されたnetstandardプロジェクト)と「古い」プロジェクトが同じディレクトリ(例:VS 2015で作成された.NET 4.6プロジェクト)にある場合、次の理由により、継続的に競合するようです。どちらも./obj異なる方法でディレクトリを使用します。詳細はこちら。

msbuildの回避策は、プロジェクトの1つに別のobjディレクトリを使用させることです。これを「古い」csprojに追加しました。

<PropertyGroup>
  <!-- Needed due to old project and new project in same directory: https://github.com/NuGet/Home/issues/5126 -->
  <BaseIntermediateOutputPath>obj_netfx\</BaseIntermediateOutputPath>
</PropertyGroup>

4
この回避策はVS 2017でうまく機能し、時間通りに私を救いました。
MechanicalCoder

2
鮮やかさ。素晴らしい説明も。
Mick Byrne

1
感謝を込めましょう。問題のある「obj」フォルダをすべて削除すると、問題も解決しました。
スチュアート

2
神のお恵みがありますように!流血のproject.jsonファイルはどこにあるのだろうと思っていました。/ objを削除するとそれができました
Vishnoo Rath 2017

1
VS 2019でもまだ問題があります。解決策をありがとう!
user2363676

27

不正なproject.lock.jsonがこの問題の原因であることがわかりました。ファイルを削除すると、問題はなくなりました。

ここにproject.lock.jsonに関するいくつかのドキュメントがあります。

さらにアドバイスとして、git ignoreファイルでproject.lock.jsonが無視されるようにし、完全なgit cleanを試すこともできます。ただし、それを行う前に、Gitクリーンの影響を理解していることを確認してください。


2

Visual Studio for Mac 7.4(ビルド1033)に更新した後、同じ問題が発生しました。

Error: Your project is not referencing the "MonoAndroid,Version=v7.1" framework. Add a reference to "MonoAndroid,Version=v7.1" in the "frameworks" section of your project.json, and then re-run NuGet restore.

jsonプロジェクトファイルはありません。ここのヒントも役に立たなかったため、ターゲットSDK(Nougat 7.1)に加えて最新のAndroid SDK(Oreo 8.1)をインストールする必要があるという難しい方法を見つけなければなりませんでした。

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


0

同じ問題がありますがvs2017-->tools-->options-->Nugetpacakge manager--->updated、適切なパッケージURLに適切なナゲットパッケージリソースを追加することで解決しました 。

下の画像を参照

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

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