您的项目未引用".NETFramework,Version = v4.5"框架.

S. *_*ECY 90 .net json entity-framework nuget visual-studio-2015

我正在使用VS 2015.

您的项目未引用".NETFramework,Version = 4.5"框架.在project.json的"frameworks"部分中添加对".NETFramework,Version = 4.5"的引用,然后重新运行NuGet restore.

在添加到我的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"
      }
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的:

  1. 将"dotnet5.4"替换为"net451"(并删除它),如本答案中所示.

结果是同样的错误.

  1. 将"dotnet5.4"替换为"net45"并保留"net451".这会导致新的错误:

您的project.json没有运行时部分.您应该将'"runtimes":{"win":{}}'添加到您的project.json中,然后重新运行NuGet还原.

我尝试做这个错误建议并添加

"runtimes": {
    "win":  {}
  },
Run Code Online (Sandbox Code Playgroud)

这让我有了这个错误,我似乎无法过去:

您的project.json未将"win"列为目标运行时.您应该在project.json的"runtimes"部分中添加"win":{}',然后重新运行NuGet恢复.

我已经添加了"胜利",这开始感觉像是一个红色的鲱鱼.我在做什么直接改变project.json,是不是NuGet处理这个?

Chr*_*lly 169

我有这个同样的问题,我最后不得不不仅删除的内容binobj文件夹,也.vs为解决方案目录.

  • 这是我的解决方案! (7认同)
  • .vs对我来说不是必需的.谢谢! (6认同)
  • .vs 给我造成了这个问题 (2认同)
  • 我不知道如何正确地感谢你.我一直在试图弄清楚这个问题的大部分时间都在摸不着头脑.删除所有3并像魅力一样工作.+1 (2认同)
  • 我怀疑这个问题是我本地开发箱上切换GitHub分支引起的。也就是说,我在一个分支中工作,编译创建了许多不属于存储库的文件。然后我检出一个不同的分支,这些非存储库文件仍然存在。不知何故,它们与新检出的文件冲突。 (2认同)

cri*_*mbo 121

我有同样的问题 - 这仍然使用Visual Studio 2017.3,它使用.csproj文件而不是project.json.有趣的是,错误消息仍然包含文本"project.json".

此问题的原因似乎是obj\project.assets.json来自先前版本的锁定文件或文件(取决于您的VS版本),在清理期间不会删除,如此处所述.

手动删除/obj目录是一种快速解决方法.

如果您有一个"新"项目(例如在VS 2017中创建的.NET Core或netstandard项目)和同一目录中的"旧"项目(例如在VS 2015中创建的.NET 4.6项目),它们似乎将继续战斗,因为他们都./obj以不同的方式使用dir.更多信息在这里..

msbuild解决方法是让你的一个项目使用不同的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>
Run Code Online (Sandbox Code Playgroud)

  • 这个解决方案适用于VS 2017,你按时救了我. (4认同)
  • 辉煌.很好的解释. (2认同)
  • 上帝祝福你!我想知道血腥的project.json文件在哪里.删除/ obj做到了 (2认同)

Mel*_*per 27

另外,我今天发现有一个流氓project.lock.json给我造成了这个问题.删除文件后,问题就消失了.


Thi*_*rry 11

我其实只是想出了问题.我最终点击Restore Nuget Packages了解决方案级别,然后我设法编译了我的PCL文件,然后我的解决方案的其余部分.

希望这可以帮助.