2

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

错误本身就很简单:

错误 CS0234 命名空间“Microsoft”中不存在类型或命名空间名称“Xrm”(您是否缺少程序集引用?)

但是……确实如此。C# 文件中的类名是正确的“彩色”,如果我将鼠标悬停在它上面,Visual Studio 就会明白它是什么(Entity下图中的类)。

我的主要项目是一个网络应用程序,但这个问题发生在兄弟“类库(包)”项目中。该引用是由 nuget 添加的。

Visual Studio 显示来自引用 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"
      }
    }
  }
}
4

1 回答 1

1

当您针对 net451 和 dotnet5 时,您正在引用仅具有“完整”框架实现的 NuGet 包。Entity 类的工具提示(星号)应该让您了解错误。

你有两个选择

  1. 从目标框架中删除 dotnet5 - 这意味着您的应用程序只能在 Windows 和框架 451 上运行
  2. 使用条件编译来分离两个框架的实现。

例如

#if DNX451
        // utilize resource only available with .NET Framework
#endif
于 2016-05-13T17:02:58.553 回答