2010-12-06 21 views
1

J'ai écrit une application à l'aide de Visual Studio 2010 que j'ai configurée pour être exécutée à l'aide du framework 3.5.Erreur de conversion de projet Visual Studio

J'ai ensuite vérifié dans ce projet et j'ai eu un collègue, qui utilise Visual Studio 2008, récupérer le projet. Il a ensuite commencé à obtenir une erreur qui indique qu'il n'a pas pu trouver le fichier l'accent sur le v10.0.

Tout d'abord, pourquoi essaye-t-on de référencer un répertoire 2010 quand je l'ai converti en 3.5? Ne devrait-il pas fonctionner sur une machine sur laquelle VS 2010 n'est pas installé?

Deuxièmement, qu'est-ce que Microsoft.WebApplication.targets et pourquoi en ai-je besoin?

+0

Qu'a fait votre collègue pour ouvrir le projet? VS2008 ne peut pas lire les projets VS2010. –

+0

@Hans êtes-vous sûr que c'est correct? J'ai été capable d'ouvrir des projets VS2010 compilés en utilisant le framework 3.5 avec vs2008 mais SEULEMENT quand j'avais aussi installé vs2010 sur cette machine. Pourquoi j'ai choisi (a été forcé) de faire cela est une autre histoire. –

Répondre

3

Étant donné que le chemin d'accès de la version 10.0 (deuxième) n'est pas présent sur les machines sur lesquelles V2010 n'est pas installé, VS2008 n'a pas pu charger le projet.

vs 2008 Path-

<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" /> 

vs 2010 chemin-

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" /> 

mais si tu veux l'exécuter dans les deux installations, faire comme sous- Etape 1: Ajouter V10. 0 chemin avant le chemin d'extension V9.0 MSBuild avec une propriété Condition pour rechercher le fichier basé sur la version de la solution.

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" Condition="'$(Solutions.VSVersion)' == '10.0'" /> 

<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" Condition="'$(Solutions.VSVersion)' == '9.0'" /> 

Voici nous ne précisons pas le chemin d'extension Visual Studio 2010 MSBuild d'abord le Visual Studio va essayer de mettre à jour le projet.

Etape 2:

Une fois le fichier de mise à niveau VS2010 projet aurait changé la valeur des balises FileUpgradeFlags à 0, ce qui déclencherait à nouveau une mise à niveau. Supprimez le zéro de l'étiquette.

<FileUpgradeFlags></FileUpgradeFlags> 

Enregistrez le fichier de projet et rechargez-le. Maintenant, vous serez en mesure de charger le projet dans VS2010 & VS2008 (même si VS2010 n'est pas installé) sans aucun problème.

+0

J'ai fini par créer le chemin dont il se plaignait. –

+0

merci! cherché une solution à la merde de l'assistant de conversion pendant une heure. Enlever que FileUpgradeFlags était l'astuce –

0

Peu importe le cadre cible. Si le projet est créé à l'aide de VS 2010, il ne s'ouvrira pas dans VS 2008.

Toutefois, les projets créés avec VS 2008 peuvent être convertis au format VS 2010. En ce qui concerne la deuxième erreur, avez-vous VS 2010 avec le composant "Visual Web Developer" installé?

Ce fichier est installé avec ce composant.

+1

Je ne pense pas que ce soit correct. J'ai créé le chemin dont il se plaignait et il s'est ouvert tout de suite. –