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

时间:2016-03-23 23:25:55

标签: .net json entity-framework visual-studio-2015 nuget

我正在使用VS 2015。

  

您的项目未引用" .NETFramework,Version = 4.5"   框架。添加对" .NETFramework,Version = 4.5"的引用在里面   "框架" project.json的一部分,然后重新运行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" (并删除它),如this answer
  2. 中所示

    结果是同样的错误。

    1. 更换" dotnet5.4"用" net45"并离开" net451"。这会导致新的错误:
    2.   

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

      我尝试按照建议的错误并添加

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

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

        

      你的project.json没有列出“赢”的信息。作为目标运行时。你应该   添加"赢得":{}'在你的"运行时" project.json中的部分,   然后重新运行NuGet恢复。

      我已经添加了#34; win",这开始感觉像是一只红鲱鱼。我在做什么直接改变project.json,是不是NuGet正在处理这个?

7 个答案:

答案 0 :(得分:150)

我遇到了同样的问题,我不仅要删除binobj文件夹的内容,还要删除解决方案的.vs目录。

答案 1 :(得分:116)

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

此问题的原因似乎是来自先前版本的锁定文件或obj\project.assets.json文件(取决于您的VS版本),在清除as described here期间不会将其删除。

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

如果您有一个“新”项目(例如在VS 2017中创建的.NET Core或netstandard项目)和同一目录中的“旧”项目(例如在VS 2015中创建的.NET 4.6项目),它们将会显示不断战斗,因为他们都以不同的方式使用./obj目录。 More info here.

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>

答案 2 :(得分:26)

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

答案 3 :(得分:10)

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

希望这有帮助。

答案 4 :(得分: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)的艰难方法。

enter image description here

答案 5 :(得分:0)

我有同样的问题,但是我已经通过在以下位置添加适当的块包资源来解决 vs2017-->tools-->options-->Nugetpacakge manager--->updated正确的软件包网址。

请参考下图

enter image description here

答案 6 :(得分:0)

我遇到了同样的问题,但是方式不同。

        Your project does not reference ".NETFramework,Version=v4.5" framework. Add a reference to ".NETFramework,Version=v4.5" in the "TargetFrameworks" property of your project file and then re-run NuGet restore.          

TargetFrameworks属性中添加了引用。

enter image description here

在删除obj bin.vs之后重建项目。仍然会抛出相同的结果。