【问题标题】:Cannot resolve a project in .NET Core 1.1 using Visual Studio 2015无法使用 Visual Studio 2015 解析 .NET Core 1.1 中的项目
【发布时间】:2017-01-04 05:42:12
【问题描述】:

我有一个 VS 2015(Ver 14 Update 3,安装了最新的 .NET Core 工具)解决方案,其中包含多个类库和一个可执行项目。我正在使用 ASP.NET Core 1.1。问题是,尽管右键单击客户端程序的“资源”并确保已检查/包含库项目,并且尽管库项目在 Project.json 文件中被列为依赖项(当然也已恢复), VS 仍然告诉我它无法从类库项目中解析命名空间/类。有时它甚至可以构建,有时它不会构建,但是我的代码到处都是红色,当我按 alt+enter 时,ReSharper 为我提供了添加使用和引用的选项,当它这样做时,一切仍然是红色并且不能定位。

除了我需要在 ASP.NET Core 中处理的资源、project.json 和 using 语句以正确包含类库之外,还有什么其他的吗?谢谢。

PS:我也尝试过导入 DLL 程序集,但它说我只能在项目中导入 .NET Framework 程序集,所以也失败了。此外,我的同事在使用相同工具的机器上没有遇到此问题。

Project.json

    {
  "dependencies": {
    "Churnite.Data": "1.0.0-*",
    "Microsoft.AspNetCore.Diagnostics": "1.1.0",
    "Microsoft.AspNetCore.Mvc": "1.1.0",
    "Microsoft.AspNetCore.Mvc.Core": "1.1.0",
    "Microsoft.AspNetCore.Mvc.Formatters.Xml": "1.1.0",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
    "Microsoft.Extensions.Logging.Console": "1.1.0",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.1.0",
    "Microsoft.EntityFrameworkCore.Tools": {
      "type": "build",
      "version": "1.1.0-preview4-final"
    },
    "Microsoft.Extensions.Configuration.FileExtensions": "1.1.0",
    "Microsoft.Extensions.Configuration.Json": "1.1.0",
    "Churnite.Domain": "1.0.0-*",
  },

  "tools": {
    "Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final",
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.1.0-preview4-final"
  },

  "frameworks": {
    "netcoreapp1.1": {
      "imports": [
        "dotnet5.6",
        "portable-net45+win8"
      ],
      "dependencies": {
        "Microsoft.NETCore.App": {
          "type": "platform",
          "version": "1.1.0"
        }
      }
    }
    },
  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true
  },

  "runtimeOptions": {
    "configProperties": {
      "System.GC.Server": true
    }
  },

  "publishOptions": {
    "include": [
      "wwwroot",
      "web.config"
    ]
  },

  "scripts": {
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  },
  "runtimes": {
    "win10-x64": {}
  }
}

注意:Churnite.Data 是不工作的项目。 “数据”部分是 VS 所说的它无法定位的部分。

【问题讨论】:

  • Churnite.Data 恢复并构建成功?
  • 是的,我什至将其删除并重新添加并观看了几次恢复。这就是让我困惑的地方!例如,在我的控制器中,我有:using Churnite.Data.Abstraction; using Churnite.Domain.Entities; 在顶部,数据和域都是红色的,给我“无法解析符号”
  • 将所有项目 "Microsoft.NETCore.App": "1.1.0", 中的 project.json 更改为 "Microsoft.NETCore.App": { "version": "1.1", "type": "platform" } 和 "frameworks": { "netcoreapp1.0": {"frameworks": { "netcoreapp1.1": {

标签: c# .net visual-studio asp.net-core asp.net-core-mvc


【解决方案1】:

您应该将netcoreapp1.0Microsoft.NetCore.App 1.0 版的project.json 文件中的引用更新到1.1 版

update an existing project to ASP.NET Core 1.1

【讨论】:

  • 不幸的是我已经成功地完成了这些更改,但它并没有解决原来的问题。不过还是谢谢你的建议!
  • cmd 可能驻留的每个项目目录中的cmd 上运行dotnet restore 命令。让我知道您遇到了什么错误?
【解决方案2】:

您可以在 project.json 中进行一些更改:

  1. Microsoft.NETCore.App 到

    “Microsoft.NETCore.App”:{ “版本”:“1.1.0”, “类型”:“平台” }

  2. 框架到

    “框架”:{ “netcoreapp1.1”:{ “进口”:[ "dotnet5.6", “便携式-net45+win8” ] } }

希望对您有所帮助!

【讨论】:

  • 不幸的是我已经成功地完成了这些更改,但它并没有解决原来的问题。不过还是谢谢你的建议!
【解决方案3】:

在 .Net Core 1.1 中,project.json 已停用,取而代之的是与 MSBuild 兼容的 csproj 文件。因此您可以编辑 .csproj 文件以使用 .Net 4.6(或其他版本)

代替:

  <PropertyGroup>
    <TargetFramework>netcoreapp1.1</TargetFramework>
  </PropertyGroup>

设置:

  <PropertyGroup>
    <TargetFramework>net46</TargetFramework>
  </PropertyGroup>

现在您可以引用一个项目,例如 .Net 4.6 中的库

希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2017-04-29
    • 1970-01-01
    • 1970-01-01
    • 2017-06-18
    • 2018-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-02
    相关资源
    最近更新 更多