2016-05-13 2 views
2

Я провожу вокруг ASP.Net MVC 5/ASP.Net Core и получаю ошибки при попытке построить проект.Ошибка в том, что ссылка отсутствует, когда она добавляется в проект

Ошибка достаточно проста сама по себе: (? Пропущена ссылка на сборку)

CS0234 Ошибка типа или пространства имен имя «XRM» не существует в пространстве имен «Microsoft»

Но ... это так. Имя класса в файле C# правильно «окрашено», и если я на него курсирую, Visual Studio понимает, что это (класс Entity на рисунке ниже).

Мой главный проект - это веб-приложение, но эта проблема возникает в проекте «Библиотека библиотеки (пакета)». Ссылка была добавлена ​​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

показать файл project.json –

+0

Я хотел бы сделать чистый и восстановить только чтобы убедиться, что что-то напуганный не происходит с вашими ссылками. Также убедитесь, что вы ориентируетесь на правильную версию .NET framework, так как эта ошибка может возникнуть, если сборка с правильной ссылкой не входит в целевую структуру. Entity Framework должен требовать 3.5 или более поздней версии. Я считаю, что –

+0

Чистый перестроен, VS закрыт и открыт снова, к сожалению. – glosrob

ответ

1

Вы ссылаетесь NuGet пакет, который имеет только реализацию «полный» рамочное в то время как вы ориентируетесь как net451 и dotnet5. Подсказка для класса Entity (знак звездочки) должна дать вам представление об ошибке.

У вас есть два варианта

  1. Удалить dotnet5 из целевых структур - Это означает, что ваше приложение будет работать только на Windows, и с каркасом 451
  2. использования условной компиляции для разделения реализации двух рамок.

, например.

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

Имеет смысл - спасибо. – glosrob

Смежные вопросы