似乎添加到项目

时间:2016-05-13 14:10:24

标签: c# dll asp.net-core project.json

我正在探索ASP.Net MVC 5 / ASP.Net Core,并在尝试构建项目时遇到错误。

错误很简单:

  

错误CS0234类型或命名空间名称' Xrm'在命名空间中不存在' Microsoft' (你错过了一个程序集引用吗?)

但是......确实如此。 C#文件中的类名称是正确的'彩色'如果我将鼠标悬停在它上面,Visual Studio会理解它是什么(下图中的Entity类)。

我的主要项目是一个网络应用程序,但这个问题发生在一个兄弟级别的类库(包)和#39;项目。引用由nuget添加。

Visual Studio showing hover help for class from referenced DLL

任何想法我可能做错了或者我可能会尝试调试的地方?

project.json看起来像这样:

{
  "version": "1.0.0-*",
  "description": "My Proj Name",
  "authors": [ "Robert" ],
  "tags": [ "" ],
  "projectUrl": "",
  "licenseUrl": "",

  "frameworks": {
    "net451": {
        "dependencies": {
            "Microsoft.Crm.Sdk.Proxy": "1.0.0-*",
            "Microsoft.CrmSdk.CoreAssemblies": "8.1.0"
            "Microsoft.Xrm.Client": "1.0.0-*"
        }
    },
    "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 个答案:

答案 0 :(得分:1)

您正在引用仅具有"完整"的NuGet包。当您同时瞄准net451和dotnet5时,框架实现。实体类的工具提示(星号)可以让您了解错误。

您有两个选择

  1. 从目标框架中删除dotnet5 - 这意味着您的应用程序仅适用于Windows和框架451
  2. 使用条件编译来分离两个框架的实现。
  3. e.g。

    #if DNX451
            // utilize resource only available with .NET Framework
    #endif