2010-06-21 5 views
4

Nous venons tout juste de passer de VS2008 à VS2010.Erreur lors de l'utilisation de 'var' après la mise à niveau vers Visual Studio 2010

Notre projet compile bien; mais lorsque nous allons exécuter l'application Web, nous obtenons l'erreur suivante lors de l'ouverture de Default.aspx:

Erreur de serveur dans l'application '/'. Erreur de compilation Description: Une erreur s'est produite lors de la compilation d'une ressource requise pour traiter cette demande . S'il vous plaît examiner les détails d'erreur spécifiques suivants et modifier votre code source de manière appropriée.

erreur du compilateur Message: CS0246: Le type ou le nom namespace 'var' n'a pas pu être trouvée (? Vous manque une aide de directive ou une référence d'assemblage)

d'ouverture la page et En passant la souris sur la déclaration 'var', VS2010 reconnaît correctement que son type est un RegEx.

Je pense que quelque chose de funky est peut-être arrivé dans notre web.config ou dans le fichier machine.config lors de la mise à niveau.

Quelqu'un d'autre a déjà rencontré ce problème? Toute aide serait grandement appréciée, j'espère que cela pourrait me faire gagner du temps à plonger dans ces fichiers.

EDIT: Voici la section relevent de code qui se fait sauter:

Line 10: protected void valSearchFreeText_ServerValidate(object source, ServerValidateEventArgs args) 
Line 11: { 
Line 12:  var url = new Regex(@"http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?", RegexOptions.IgnoreCase); 
Line 13:  var html = new Regex(@"[<,>]", RegexOptions.IgnoreCase); 
Line 14:  args.IsValid = !html.IsMatch(args.Value) && !url.IsMatch(args.Value); 

Je ne crois pas que .NET 4.0 est la cause; nous avons seulement mis à jour de VS2008 à VS2010; Nous n'avons pas migré de .NET 3.5 vers .NET 4.0

Je vérifierai de nouveau le serveur de développement ASP.NET par rapport à IIS et publierai dans quelques minutes les résultats obtenus. Il est définitivement lancé depuis le serveur de développement.

Édition 2 Cette opération est lancée à partir du serveur de développement et d'IIS. System.Xml.Linq est également inclus dans la section assemblées de notre web.config:

<add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/> 
+0

Obtenez-vous cela lors de l'exécution de l'application Web sur IIS ou Development Server? – Greg

+0

Hmm, question intéressante – Pierreten

+0

S'il vous plaît montrer les sections appropriées de code, de sorte que nous pouvons voir "var" dans le contexte. – abelenky

Répondre

5

Vérifiez votre fichier web.config pour le nœud configuration/system.codedom/compilers/compiler. Il doit y avoir un nœud enfant providerOption qui détermine la version du compilateur à utiliser. Il devrait ressembler à <providerOption name="CompilerVersion" value="v3.5"/>. On dirait que le vôtre dit 2.0 au lieu de 3.5.

+0

Cela l'a fait. Notre développeur qui était en charge de la migration a déplacé ces fichiers du fichier web.config au niveau de l'application vers le fichier web.config au niveau de la machine. La version mise à jour de web.config au niveau de la machine n'a jamais été intégrée à notre environnement de développement. Ajoutant cela dans tout fixe. –

3

Est-ce le pool d'applications associé dans IIS configuré pour utiliser le framework .Net 4?

+0

Je ne pense pas que ce soit ça.Nous avons seulement mis à jour de VS2008 à VS2010. Nous n'avons pas migré de .NET 3.5 vers .NET 4.0. –

0

Assurez-vous que le cadre cible est fixé à 3,5 ou plus En outre, vérifiez que vous avez un bon fichier web.config dans le dossier racine de l'application (copier le fichier web.config recommandé et le renommer.)

Questions connexes