Le nom de type ou d'espace de noms 'Linq' n'existe pas dans L'espace de noms 'System'

j'ai un service de wcf hébergé dans un site web à IIS et je semble avoir ce problème. Dans mon web.config j'ai ceci:

<system.web>
        <compilation>
            <assemblies>
                <add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                <add assembly="System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                <add assembly="System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
                <add assembly="System.Web.Extensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                <add assembly="System.Data.DataSetExtensions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
                <add assembly="System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/></assemblies>
        </compilation>
    </system.web>

tous les projets dans le cadre de la solution cible 4.0.

LE: j'obtiens l'erreur quand j'essaie d'importer le système.Linq;

 using System.Linq;
24
demandé sur ilter 2012-01-31 00:44:04

8 réponses

Solution: Il semble que le web config devrait être:

<system.web>
    <compilation debug="true" targetFramework="4.0"/>
</system.web>
19
répondu gigi 2012-02-03 09:52:49

avez-vous un fichier de code dans votre site avec Imports System.Linq (VB) or using System.Linq; (c#)?

semble comme la réponse la plus simple est qu'il s'agit d'une typographie. Peut-être que le namespace devrait être corrigé en System.Data.Linq.

Modifier: Système.Linq devrait être un espace de noms valide, car il " fournit des classes et des interfaces qui prennent en charge les requêtes qui utilisent la requête intégrée au langage (LINQ)."(http://msdn.microsoft.com/en-us/library/system.linq.aspx). Il est également importé par défaut au niveau du système Web.config.

donc, pas sûr de ce qui se passe ici si elle n'est pas liée à ma suggestion ci-dessus. Peut-être que quelque chose ne va pas dans votre machine.config ou système-Niveau web.config?

Modifier 2: Je trouve étrange que vous ajoutiez le système.Assemblage central à ce niveau. Je pense que c'est l'assemblée qui inclut le système.Espace de noms Linq. Peut-être l'enlever aiderait?

Modifier 3: System.Linq est importé par défaut dans le web au niveau de la machine.config. Vous pouvez supprimer l' ligne dans votre fichier de code.

5
répondu pseudocoder 2012-01-31 15:16:40

parfois il "disparaît" juste pour le plaisir. Si vous n'en avez pas besoin, supprimez-le.

sinon cliquez avec le bouton droit de la souris sur votre site Web dans l'Explorateur de solutions et ajoutez une référence à celui-ci.

3
répondu f2lollpll 2012-01-31 05:07:16

Je n'avais pas de méthodes Linq sur mon contrôleur (Count, Where, toList, etc...). L'ajout de l'espace de noms:

using System.Linq;

résolu le problème pour moi. Peut-être aider quelqu'un dans le futur...

2
répondu ilter 2015-04-27 13:45:30

j'ai eu la même erreur mais mon application web fonctionnait sur framework v2.0. J'ai changé ma liste d'applications de v2.0 à v4.0. tous les travail...les jours heureux

0
répondu user3325272 2014-02-18 23:40:58

le problème est que vous n'avez pas ajouter

debug="true|false" targetFramework="4.0"

lors de la compilation de la balise.

0
répondu kidistB 2015-04-23 17:10:30

j'ai résolu ce problème en ajoutant l' System.Linq espace de noms les espaces de noms dans le Views\Shared\Web.config fichier électronique.g, comme ci-dessous, 2ème à partir du bas, au-dessus de l' WebApplication1 espace de noms.

Remarque, c'est dans le Web.config dans le Views n'est pas le principal site web du site.config`.

<system.web.webPages.razor>
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    <pages pageBaseType="System.Web.Mvc.WebViewPage">
        <namespaces>
            <add namespace="System.Web.Mvc" />
            <add namespace="System.Web.Mvc.Ajax" />
            <add namespace="System.Web.Mvc.Html" />
            <add namespace="System.Web.Optimization"/>
            <add namespace="System.Web.Routing" />
            <add namespace="System.Linq" />
            <add namespace="WebApplication1" />
        </namespaces>
    </pages>
</system.web.webPages.razor>
0
répondu ProfK 2016-08-20 09:35:59

une Autre chose à vérifier est votre .dossier csproj, plus précisément ces articles:

<TargetFrameworkProfile>Profile47</TargetFrameworkProfile>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

Si vous n'avez pas de dossier pour le Profil indiqué, vous devrez peut-être modifier manuellement à celui que vous avez. Vous pourriez également être en mesure de télécharger la cible de https://www.microsoft.com/net/download/visual-studio-sdks.

malheureusement, mon collègue a eu ce cas avec un vieux projet PCL (profil-based PCL), de sorte qu'il n'était pas en mesure de aller télécharger la cible Portable .NET, mais j'ai dû lui donner les DLLs de mon dossier de fonctionnement (C:\Program fichiers (x86)\reference Assemblies\Microsoft\Framework.NETPortable\v4.0 \ Profile\Profile47).

0
répondu NH. 2018-05-16 15:06:48