[Silverlight 3] Cannot get the list of output files from the project…
… c’est la description du formidable message d’erreur qui m’a fait perdre aujourd’hui quasiment 2 heures lors d’une migration Silverlight 3 Beta 1 à Silverlight 3 RTW…
Le comportement lié à ce message d’erreur est le suivant:
- L’application SL est compilée
- Le XAP généré
- … mais une erreur apparait lors de l’exécution de l’application SL dans le hôte ASP.NET
Bref, ca compile, mais il y’a un truc non détaillé qui empêche l’utilisation du projet dans un site ASP.NET.
Si vous rencontrez ce problème, qui n’était pas présent dans la pré-version de SL, voici la raison / le contexte:
- Je possède un projet avec plusieurs librairies Silverlight
- Parmi ces librairies, une à été développée / ouverte au moins une fois avec VS 2010, le projet est présent dans ma solution VS 2008 car il évolue et la librairie est référencée directement au travers de son projet donc (recompilé à chaque fois) => c’est cette librairie qui pose problème (à noter que je peux travailler dessus dans VS 2008 et la faire évoluer sans aucun soucis / avertissement).
En fait, la vrai cause du soucis est affichée dans le log de compilation précédant mais en temps que “Warning” alors que c’est un problème critique pour le déploiement: Project file contains ToolsVersion=”4.0”, which is not supported by this version of MSBuild. Treating the project as if it had ToolsVersion=”3.5”.
Personnellement, ce message ne m’a pas inquiété: MSBuild à un soucis, mais il gère comme un grand… et bien, non.
En ouvrant le fichier .csproj de la librairie créé par VS 2010 et en remplaçant manuellement 4.0 par 3.5, le message d’erreur disparait lors de la compilation et l’application se met à fonctionner.
Merci les messages d’erreur clairs et donc attention:
- Un projet SL 2008 ouvert avec 2010 est convertit par l’assistant au démarrage de VS, l’attribut ToolsVersion prend la valeur 4.0 à la place de 3.5
- Un projet SL 2010 ouvert avec 2008 ne lève pas d’erreur au démarrage de VS et la valeur reste à 4.0, ce qui pose problème lors de la compilation de SL 3 RTW
Bon, a part ça, c’est quand même cool Silverlight 3 :)