2010-04-19 14 views
2

Je viens de passer de VS2008 à VS2010. Dans le processus, je lui ai permis de mettre à jour mes DLL à 4.0. J'ai décidé que ce n'était pas une bonne idée et maintenant j'ai reculé.Mise à niveau vers 4.0 Framework, puis rétrogradé, ne trouve plus d'espace de noms Linq maintenant?

Tout fonctionne très bien dans VS2010, mais quand il frappe mon serveur CI (CruiseControl.Net), je reçois une erreur de:

The type or namespace name 'Linq' does not exist in the namespace 'System' (are you missing an assembly reference?

3.5 est sur le serveur, et d'autres projets qui utilisent 3.5 bien construire, donc je ne pense pas que ce soit un problème de cadre.

Quelqu'un at-il des indices?

Répondre

5

J'ai une référence à System.Core, mais il est avéré pour l'un de mes projets, quand je rétrogradé, il n'a pas ajouté ce bit de nouveau dans mon dossier de projet:

<Reference Include="System.Core"> 
    <RequiredTargetFramework>3.5</RequiredTargetFramework> 
    <Private>False</Private> 
</Reference> 

La partie clé il y a le RequiredTargetFramework. Je me suis laissé convaincre parce que ce n'était pas seulement Linq qui était introuvable, mais aussi les attributs de la méthode Func <> et Extension.

Tout le contenu de 3,5 était manquant.

+0

Je viens de faire EXACTEMENT la même chose que toi ... Merci de m'avoir sauvé un peu de frustration! – NeilD

6

Assurez-vous que vous avez une référence à System.Core.dll.

+0

J'ai essayé cela :) Plus précisément, lorsque vous faites cela, il vous indique que vous ne pouvez pas ajouter une référence à System.Core car il est inclus par défaut. – CubanX

+1

Est-ce là, dans votre liste? Est-il réglé sur la bonne version? Si ce n'est pas le cas, vous devrez modifier votre projet à la main pour le corriger ... –

+0

Vous donner un sursis d'être dans le stade Reed :) J'ai vu votre commentaire après que j'ai trouvé la solution. – CubanX