Ошибка компиляции в .NET 4.0 web.config - Linq не найден - PullRequest
13 голосов
/ 27 июня 2011

Я могу нормально скомпилировать и протестировать свое веб-приложение .NET 4.0 в Visual Studio 2010. Если, однако, я указываю свой локальный IIS на папку, содержащую приложение, я получаю следующую ошибку:

Compiler Error Message: CS0234: The type or namespace name 'Linq' does not exist in the namespace 'System' (are you missing an assembly reference?)
Source Error:
Line 388:                <add namespace="System.ComponentModel.DataAnnotations" />
Line 389:                <add namespace="System.Configuration" />
Line 390:                <add namespace="System.Linq" />
Line 391:                <add namespace="System.Text" />
Line 392:                <add namespace="System.Text.RegularExpressions" />

Source File: c:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\web.config    Line: 390 

Как получается, что web.config из фреймворка для меня не скомпилируется?

Я обнаружил подобные проблемы в сети, и большинство просто говорят "добавить эту ссылку ...", но это возможно "Правильно ли редактировать файл web.config по умолчанию - не так ли?

Ответы [ 3 ]

43 голосов
/ 02 ноября 2012

Это сработало для меня.Есть эти сборки в файле web.config

<system.web>
   <compilation debug="true">
      <assemblies>
        <add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
        <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="System.Web.Extensions.Design, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
      </assemblies>
   </compilation>
</system.web>
11 голосов
/ 27 июня 2011

Я думаю, вам нужно добавить сборки ниже в вашем web.config -

<add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>

Вы получите System.Linq в сборке ядра

0 голосов
/ 14 мая 2015

Если у вас есть веб-сайт, asp.net нужны правильные ссылки для его компиляции.Веб-приложение не будет нуждаться в этом.

В machine.config есть ссылки на некоторые сборки, некоторые из них могут отсутствовать в зависимости от вашего кода, вы можете добавить их в machine.config или в корневой web.config.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...