Подтвердить что ты не робот

Страница ASP.net получает ошибку в заявлении на импорт, но у меня есть ссылка на место?

Любые идеи, почему я получаю ошибку ниже в моем проекте MVC2, даже в самом проекте, я определенно имею ссылку на "system.Web.Entity"?

Compiler Error Message: CS0234: The type or namespace name 'Entity' does not exist in the namespace 'System.Data' (are you missing an assembly reference?)

Source Error:

Line 1:  <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<List<Node>>" %>
Line 2:  <%@ Import Namespace="TopologyDAL" %>
Line 3:  <%@ Import Namespace="System.Data.Entity" %>

спасибо

РЕДАКТИРОВАТЬ. Кстати, если я выберу строку 3, я получу ошибку:

 Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: CS0012: The type 'System.Data.Objects.DataClasses.EntityObject' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089'.

Source Error:

Line 164:    
Line 165:    [System.Runtime.CompilerServices.CompilerGlobalScopeAttribute()]
Line 166:    public class views_node_index_aspx : System.Web.Mvc.ViewPage<List<Node>>, System.Web.SessionState.IRequiresSessionState, System.Web.IHttpHandler {
Line 167:        
Line 168:        private static bool @__initialized;


Source File: c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\6ec16fd2\a2147d7c\App_Web_index.aspx.1b64bdf1.ajruf7pv.0.cs    Line: 166 
4b9b3361

Ответ 1

Как miensol, попробуйте поместить его в свой Web.config файл:

<compilation debug="true" targetFramework="4.0">
  <assemblies>
    <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  </assemblies>
</compilation>

Ответ 2

Альтернативой возиться с конфигурацией compilation.assemblies является просто отметить сборку System.Data.Entity как "Копировать локальную" в вашем решении.

Это работает из-за корневого уровня web.config, содержащего подстановочный знак add element, который вызывает все сборки в вашем "частном кэше сборок" "для использования во время компиляции страницы. Из MSDN:

Значение элемента add - это имя сборки, а не путь к DLL. ASP.NET ищет имя сборки, чтобы найти физическое расположение DLL. При желании вы можете указать символ подстановки звездочки (*) для добавления каждая сборка в кеше частной сборки для приложения, который находится либо в подкаталоге \bin приложения, либо в каталоге установки .NET Framework (% SystemRoot%\Microsoft.NET\Framework\версия).

Ответ 3

Monish, файл App.config работает с той же целью, что и файл Web.config, а добавление сборки выполняется так же, как и для файла Web.config.

<configuration>
    <compilation debug="true">
        <assemblies> 
            <add assembly="myassembly, Version=1.0.0.0, Culture=neutral,PublicKeyToken=9999999999999"/> 
        </assemblies> 
    </compilation>
</configuration>

Ответ 4

Кроме того, вы ссылаетесь в web.config(как указано выше), вы должны: Убедитесь, что файлы DLL находятся в вашем проекте, например, в папке BIN. Если вы хотите узнать, соответствует ли DLL правильная версия, перейдите в C:\Windows\Assembly и убедитесь, что у вас есть версии DLL со своим соответствующим PublicKeyToken против вашего проекта. Скопируйте правильную DLL, но сделайте это с помощью CMD (в Проводнике Windows не отображаются файлы), например, наберите CD C:\Windows\Assembly\GAC_MSIL и скопируйте нужную DLL.