web-dev-qa-db-fra.com

erreur "la propriété outputpath n'est pas définie pour ce projet"

J'ai une solution multi-projets dans Visual Studio 2008. Je viens d'ajouter une nouvelle configuration appelée Release-VersionIncrement à la solution, en spécifiant la configuration "use release" comme base. Tous les fichiers de projet ont été mis à jour avec cette configuration. Cependant, lorsque j'essaie de compiler un projet spécifique à l'aide de cette configuration, j'obtiens le message d'erreur suivant:

Erreur 5 La propriété OutputPath n'est pas fixé pour ce projet. S'il vous plaît vérifier à assurez-vous que vous avez spécifié un Configuration/Plateforme valide combinaison. Configuration = 'Release-VersionIncrement' Platform = 'AnyCPU' C:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets 539 9 Conversion des données

Qu'est-ce qu'il se passe ici? Le projet se compile bien dans la configuration Release ou Debug.

88
laconicdev

Cela se produit généralement lorsque la propriété OutputPath du fichier de projet est vide. Les fichiers de projet ne sont que MSBuild fichiers. Pour éditer dans Visual Studio: Faites un clic droit sur le projet, choisissez "Décharger le projet" puis faites un clic droit sur le projet non chargé et sélectionnez "Modifier ...". 

Recherchez le groupe de propriétés Release-Versionincrement. Il devrait ressembler à quelque chose comme

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release-VersionIncrement|AnyCPU' ">
  <OutputPath>bin\Release-VersionIncrement\</OutputPath>
  <DefineConstants>TRACE</DefineConstants>
  <Optimize>true</Optimize>
  <DebugType>pdbonly</DebugType>
  <PlatformTarget>AnyCPU</PlatformTarget>
  <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
  <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
  <ErrorReport>Prompt</ErrorReport>
</PropertyGroup>

L’important là-bas le OutputPath, existe-t-il pour votre fichier de projet? Sinon, ajoutez-le et réessayez.

93

J'ai également constaté cette erreur lorsque notre agent de génération était configuré pour exécuter la plate-forme " Tout processeur " (avec les espaces affichés dans Visual Studio) plutôt que " AnyCPU " (un mot spécifié dans le fichier de projet ).

76
Richard Dingwall

J'ai eu le même problème lorsque j'ai d'abord utilisé MSBuild. Ma solution est la suivante: utilisez la propriété OutputPath définitivement. Comme ça:

msbuild XXX.csproj /p:OutputPath=bin\Debug.
34
user239945

Dans notre cas, nous exécutions un script de génération sur nos boîtes de développement HP. Certaines variables d’environnement HP ont été configurées pour leurs propres besoins et l’un d’eux est PLATFORM (utilisé, apparemment, pour «HP Easy Setup»). 

La suppression de la variable d’environnement PLATFORM a fonctionné. 

Vous pouvez également pérenniser votre script de génération en spécifiant la plate-forme, c.-à-d.
msbuild /p:Platform=AnyCPU.

9
Boggin

Si Visual Studio se plaint spécifiquement que "Platform = 'BPC'", vous pouvez facilement résoudre ce problème en supprimant la variable d'environnement "Platform".

Delete this bad boy.

Maintenant, redémarrez Visual Studio et vous êtes prêt à partir.

7
Scott S

Comme il a été dit, OutputPath doit être défini ET il doit être placé before <Import Project="$(WixTargetsPath)" /> dans le fichier .wixproj

6
OlegMax

Comme "Richard Dingwall", le problème est lié à l'utilisation de la version display de " Any CPU " à la place de la version MSBuild qui lit " AnyCPU ".

Allez dans Construire/Nouvelle définition de construction ou Éditer la définition de construction -> Processus -> Configurations à construire, ouvrez le dialogue de sélection de configuration et dans " Plateforme " au lieu de sélectionner " Toute CPU ", ajoutez manuellement " AnyCPU "

6
Robert

J'ajoutais la plate-forme x64 à ma solution aujourd'hui, lorsque j'ai rencontré ce problème.

Dans mon cas, l'erreur était la suivante:

Construit $/ProjectDirectory/NomProjet.csproj pour les cibles par défaut . c:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets (484): la propriété OutputPath n'est pas définie pour le projet NomProjet.csproj. Vérifiez que vous avez spécifié une combinaison valide de Configuration et de plate-forme pour ce projet. Configuration = 'Plateforme de débogage' = 'x64'. Vous voyez peut-être ce message parce que vous essayez de créer un projet sans fichier de solution et que vous avez spécifié une configuration ou une plateforme autre que celle par défaut qui n'existe pas pour ce projet.

Je savais que la OutputPath devrait aller, car il s’agissait d’une solution VS existante et fonctionnelle. Je suis donc passé à l'indice suivant: "une combinaison valide de Configuration et de plate-forme".

Aha! Visual Studio tente de générer Configuration='Debug', Platform='x64'. En regardant mon fichier de projet, j'ai réalisé que x64 n'était pas répertorié comme l'une des plates-formes possibles. En d'autres termes, j'avais les entrées ci-dessous (abrégées):

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
      <PlatformTarget>x86</PlatformTarget>
      <OutputPath>bin\x86\Debug\</OutputPath>  
      . . .  
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
      <PlatformTarget>x86</PlatformTarget>
      <OutputPath>bin\x86\Release\</OutputPath>    
      . . .
  </PropertyGroup>

Solution facile alors: ajoutez simplement des entrées x64!

J'ai copié/collé les entrées x86 et je les ai modifiées pour utiliser x64. Remarquez que j'ai aussi modifié les chemins pour que ceux-ci ne remplacent pas les constructions x86:

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
      <PlatformTarget>x64</PlatformTarget>
      <OutputPath>bin\x64\Debug\</OutputPath>    
      . . .
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
      <PlatformTarget>x64</PlatformTarget>
      <OutputPath>bin\x64\Release\</OutputPath>    
      . . .
  </PropertyGroup>
4
Gustavo Mori

J'ai supprimé la variable d'environnement Platform (était BNB ou similaire). Le problème est parti.

4
thorn

J'ai eu du mal avec cela pendant un moment, puis j'ai également déchargé, construit, puis rechargé le projet incriminé dans la solution, puis MSBuild a fonctionné correctement. 

3
Glenn

En tant que Scott S, j’ai dû supprimer la variable d’environnement "Platform".

Ensuite, redémarrez VS et tout va bien: plus de message d'erreur ...

3
M Denis

Le problème concernait la configuration de mon projet. Voici le scénario:

Références de la solution A:

Le projet X fait référence au projet Y
Projet Y

La solution B (celle que j'essaie de construire) fait référence à:

Projet X Projet Z

Ma solution consistait à créer une configuration portant le même nom pour la solution A, à la reconstruire, puis à reconstruire la solution B. Cela a résolu le problème.

2
laconicdev

J'ai eu ce même message d'erreur. Cela était dû à la référence à un projet déchargé et non requis par l'éditeur de liens (sinon, il aurait échoué lors de la compilation). Supprimer la référence incriminée a résolu le problème.

2
Gishe

Dans mon cas (VS2010), j'ai supprimé la chaîne dans la zone "OutputPath" qui se trouve sur l'onglet "Générer" et je l'ai laissée vide. Ensuite, j'ai reconstruit la solution. La construction a réussi et VS a inséré le répertoire actuel "./" dans le "OutputPath". J'ai remplacé le répertoire actuel "./" par mon chemin ("bin\x64\Release \" - il suffit de dire qu'il s'agit du chemin de dossier exact dont VS se plaignait à l'origine) et la reconstruction a été une nouvelle fois réussie.

2
Tomasz Stypich

Lorsque j'ai ajouté une nouvelle configuration de solution à ma solution, une erreur s'est produite: "La propriété OutputPath n'est pas définie pour le projet X. Vérifiez que vous avez bien spécifié une combinaison valide de Configuration et de plate-forme pour ce projet. Configuration = 'QA 'Platform =' AnyCPU '. Cette erreur peut également apparaître si un autre projet tente de suivre une référence de projet à projet, si ce projet a été déchargé ou n'est pas inclus dans la solution et si le projet de référencement ne construit pas en utilisant la même configuration ou une plateforme ou une configuration équivalente. ProjectY ". 

Dans mon cas, le problème était dû à une partie mise en évidence de la description de l'erreur. Le projet X faisait partie de ma solution et consistait à faire référence à ProjectY d’une autre solution (branche différente).

J'ai résolu ce problème en modifiant le projet X afin qu'il utilise la référence de projet à ProjectY dans la solution actuelle. J'espère que cela aide quelqu'un ayant un problème similaire.

1
BNJ

Dans mon cas, la propriété OutputPath était définie dans les fichiers de projet . Mais le déchargement, le rechargement puis la reconstruction l'a corrigée.

1
farkashon

J'ai eu le même problème, et la seule solution qui a aidé était de définir la configuration de construction manuellement dans chaque projet NCrunch.

Ouvrez la fenêtre NCrunch, où vous pouvez voir le statut de chaque construction et où vous pouvez voir que la construction échoue. Cliquez avec le bouton droit de la souris sur le projet dont la construction échoue et cliquez sur "Configurer le composant sélectionné". Sous "Paramètres de construction", vous voyez la propriété "Utiliser la configuration de construction", par exemple. "Débogage" et la propriété "Utiliser la plate-forme de génération" définissez-la sur p. Ex. "AnyCPU". (Veuillez noter que les paramètres de construction et de configuration que vous avez définis doivent exister dans vos paramètres konfigration) 

Faites cela pour tous vos projets, mais pas pour votre projet test. Après cela, tout fonctionne bien pour moi.

0
squadwuschel

Si vous décidez de définir OutputPath en tant que paramètre et que votre chemin est comme: bin\Release\\, n'oubliez pas d'ajouter \ à la fin, comme ceci: /p:OutputPath=bin\Release\\\\ cela m'a pris un certain temps pour réaliser que c'était le cas

0
Marysia

Si quelqu'un en a un dans ses journaux NCrunch, vérifiez si le PropertyGroup définissant les valeurs 'Debug'/'Release' et 'AnyCPU'/'x86' situés avant les groupes de propriétés utilisant ces valeurs dans leur condition.

<PropertyGroup>
    <!-- this one first -->
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <XXX>...</XXX>
  </PropertyGroup>

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
    <XXX>...</XXX>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
    <XXX>...</XXX>
</PropertyGroup>

Travaillé pour moi.

0
Waescher

J'ai eu le même problème. Je l'ai corrigé par propre et reconstruit les projets.

0
user5920105

Dans mon cas, j'ai essayé de déplacer le groupe de propriétés qui contenait ma configuration personnalisée en dessous de celles standard. Cela a résolu le problème pour moi.

0
ermenegild0

Dans mon cas, le nouveau bloc XML "PropertyGroup" a été généré au bas du document. Je viens de le remplacer après d'autres balises "PropertyGroup" et cela a résolu le problème.

0
Maybe

J'ai eu la même erreur, alors j'ai regardé sur les paramètres du projet et là-bas dans la section "Construction" est l'option "Construire le chemin de sortie". Et la valeur était vide. Donc j'ai rempli "bin \" valeur une erreur a disparu. Cela a résolu mon problème.

0
Lukas Dvorak

Je viens d'avoir ceci avec VS2015 Professional:

La propriété OutputPath n'est pas définie pour le projet 'xxxxx.csproj'. Vérifiez que vous avez spécifié une combinaison valide de Configuration et de plate-forme pour ce projet.

C'est aussi une jonglerie multi-projets entre débogage/libération et différentes cibles. J'ai eu l'habitude de jouer avec les configurations de construction à un moment donné et je sais que cela peut gâcher les VS, alors je les ai retirées du dépôt. Toujours pas bon. OutputPath était défini, il n'y avait plus de différences avec un bon état connu, donc il y avait définitivement un problème avec mon installation locale.

Ouvrez le programme d'installation VS2015 et cliquez sur "Réparer", et le tour est joué ... retour à la normale (du moins jusqu'à présent!)

0
Etherman

J'ai créé un nouveau projet dans une nouvelle solution faisant référence à des projets existants . Cette erreur se produit lorsque j'ajoute un projet existant (par exemple, projet 1) et que je tente de construire sans ajouter d'autres projets auxquels le projet 1 fait référence.

Assurez-vous simplement que tous les projets concernés sont ajoutés à la nouvelle solution et que l'erreur disparaît.

0
Ike

J'ai eu le même problème, je l'ai corrigé en ajoutant des configurations manquantes au projet en échec.

CONSTRUIRE -> Gestionnaire de configuration ->

Sous Colonne de configuration, cliquez sur Ajouter.

Remarque: Cela s’est fait uniquement parce que j’ai une configuration personnalisée et que les projets nouvellement créés n’ont pas cette configuration.

0
pmeyer