2013-09-02 1 views
1

nous sommes passés récemment notre asp.net 3.5 solution de VS 2008 à VS 2010 tout en voulant toujours être en .net 3.5 (comme le serveur de déploiement fonctionne sur 3,5 seulement)erreur d'exécution du compilateur après solution de commutation à VS 2010

Les bibliothèques sont correctes, mais le site Web nous cause des problèmes. Le message d'erreur que nous obtenons sur chaque page ASPX est comme ceci:

D:\WebSites\.....aspx: ASP.NET runtime error: Could not load type 'Microsoft.Build.Framework.ITaskItem2' from assembly 'Microsoft.Build.Framework, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. 

je trouve que l'interface du compilateur recherche (ITaskItem2) est seulement disponible en .NET 4.0, mais il continue à chercher dans 3.5 assemblage qui est évidemment faux.

Nous essayions de localiser l'origine de cette divergence, mais sans succès.

Il entrave notre travail de manière significative, parce que l'intellisense ne fonctionne pas pour les composants ASP, aussi le débogage des pages Web ne fonctionne pas.

Mais même lorsque cette erreur se produit dans VS, les pages fonctionnent bien lors de leur affichage dans le navigateur (en utilisant IIS), donc c'est un problème uniquement VS.

Si vous avez une idée, ce qui pourrait être mauvais ici, s'il vous plaît faites le moi savoir.

Merci

Répondre

1

Alors, j'ai réussi à faire avancer les choses juste après beaucoup d'expérimentation.

La solution a été de laisser le VS générer de nouvelles web.config standard pour le site Web et en ajoutant quelques options supplémentaires que nous utilisons dans ce ..

Il n'y a que 2 différences entre l'ancien et le nouveau web.config :

<runtime> 
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 

a été changé pour

<runtime> 
<assemblyBinding appliesTo="v2.0.50727" xmlns="urn:schemas-microsoft-com:asm.v1"> 

Je ne sais pas si cela affecte quelque chose.

Mais ce qui semble le plus important, dans le web.config non-travail il y avait une section supplémentaire <runtime>:

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
     <assemblyIdentity name="Microsoft.Build.Framework" 
     publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/> 
     <bindingRedirect oldVersion="0.0.0.0-99.9.9.9" newVersion="3.5.0.0"/> 
    </dependentAssembly> 
    </assemblyBinding> 

Je ne suis pas un gourou web.config et je ne vois pas quel est le problème avec le section fournie, mais sans elle les choses ont commencé à fonctionner miraculeusement.

Questions connexes