Construire ma solution Jenkins/MSBuild me donne cette erreur
c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(483,9): error :
The OutputPath property is not set for project '<projectname>.csproj'. Please check to
make sure that you have specified a valid combination of Configuration and Platform
for this project. Configuration='Latest' Platform='AnyCPU'. You may be seeing this
message because you are trying to build a project without a solution file, and have
specified a non-default Configuration or Platform that doesn't exist for this project.
[C:\<path>\<projectname>.csproj]
Des idées?
MODIFIER
J'ai ceci dans mon fichier .csproj
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Latest|AnyCPU'">
<OutputPath>bin\Latest\</OutputPath>
</PropertyGroup>
Ouvrez votre csproj dans un éditeur de texte et voyez si vous avez une section de groupe de propriétés. Cela devrait ressembler à ceci:
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Latest|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Latest\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>Prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>
Avez-vous une dernière configuration de construction? Sinon, ajoutez la section ci-dessus au csproj.
J'ai compris comment cela fonctionne (sans changer les propriétés de sln/csproj dans VS2013/2015).
si vous souhaitez générer un fichier .sln ----/p:ConfigurationPlatforms=Release/p: Platform = "Tout processeur" si vous souhaitez générer un fichier .csproj ----/p : Configuration = Version /p:Platform=AnyCPUnotice "Any CPU" vs AnyCPU
vérifiez les codes d'analyse, fxcop, cible de couverture (NCover). ainsi que le MSBUILD doivent être situés correctement. dans mon cas, c’est "C:\Windows\Microsoft.NET\Framework64\v4.0.30319" mais cela peut être différent car vous pouvez voir que Microsoft a donné 6 options de cmd pour construire le code base :: AMD (avec croix plt , x86 et x64) et Windows (croix, x86, x64) et cela également lorsque le développement de code a eu lieu avec JIT par défaut (il peut s'agir de PreJIT ngen.exe, econoJIT)
Je pense que plus que ce dépannage peut être manipulé en utilisant power Shell + msbuild. Peut être utile pour quelqu'un ...
Comme mentionné par perlyking, plutôt que d’éditer le XML csproj, voici ce qui a fonctionné pour moi. Voici les étapes que j'ai utilisées.
Pour ajouter à ce que @James a dit, j’ai constaté que, si j’examinais les propriétés du projet Compile dans VS2013, le chemin de sortie de la construction était spécifié. Mais lorsque j'ai examiné le fichier .csproj
directement, l'élément OutputPath
était manquant pour la configuration de construction appropriée. Ainsi, dans VS, j’ai simplement créé et inversé une modification mineure dans le chemin de sortie, je l’ai sauvegardé, puis jeté la valeur dans le fichier de projet, puis j’ai pu construire.
J'ai eu le même problème. J'ai mis à jour ma plate-forme Windows à l'aide de la ligne de commande. Actuellement, je suis mis à jour vers la version [email protected]. Ensuite, vous devez rechercher le nom de fichier "SQLite3.UWP.vcxproj". Essayez de remplacer "v141" par "v140". J'utilise actuellement Visual Studio 2015 Professional. S'il s'agit de Visual Studio 2017, il n'est pas nécessaire de changer de version dans le fichier SQLite3.UWP.vcxproj.
Dans mon cas, cette erreur s'est produite car le dossier de sortie contenait un point pour le rendre relatif au répertoire en cours. Le problème a été résolu en supprimant le point.
Le Build output path
incriminé était:
.\bin\Output
Le problème a été résolu en le changeant en
bin\Output
Le chemin de sortie de la construction se trouve dans l'onglet Build
des propriétés du projet. Il existe un chemin différent pour chaque combinaison de Configuration
et Platform
.
Je viens d'avoir le problème pour certains problèmes de structure de service dans MSBuild.
La première étape consistait à cliquer avec le bouton droit de la souris sur chaque projet affecté et à extraire ses propriétés, en sélectionnant l'onglet Construire, puis en définissant la cible de la plate-forme sur x64.
La deuxième étape consistait à accéder au gestionnaire de configuration et à configurer chaque projet afin qu'il utilise également x64 pour Debug et Release.
C'était pour un projet VS2017.
Je n'ai eu cette erreur que lorsque je publiais mon projet Web. J'avais choisi par erreur la mauvaise configuration de construction lors de la configuration du profil de publication.
J'utilisais MSBuild pour créer plusieurs fichiers .sln et j'avais également ajouté une nouvelle étape à la création d'un fichier .csproj lorsque j'ai rencontré cette erreur.
@ Saurabh's answer a souligné la racine du problème. Cependant, lors de la correction, l'ajout de /p:Platform=AnyCPU
à la section Arguments de MSBuild n'a pas résolu le problème. En fait, j'avais besoin de mettre à jour la valeur de la plate-forme à l'étape de construction.
Toutes les autres étapes de construction utilisaient la valeur de la variable $(BuildPlatform)
(qui se trouvait être "n'importe quel cpu", avec un espace dedans).
(Si j'avais construit plusieurs fichiers .csproj, j'aurais probablement créé une deuxième variable pour la plate-forme AnyCPU.)
J'ai eu deux configs de projet, Debug
et Release
. Lorsque la construction Release
a été utilisée, cette erreur s'est produite. Le problème que j’ai constaté est que, dans le fichier csproj
, la configuration Debug
était presque en haut et que la configuration Release
était entièrement en bas.
Déplacer manuellement la version Release
juste en dessous de la version Debug
l'a corrigé.
Je suppose que j'ai mal fait quelque chose lors de la configuration de mes configurations de build, car cela ne me semble pas quelque chose que j'aurais dû avoir à ajuster manuellement.
La propriété OutputPath n'est pas définie pour projet le message d'erreur apparaît si une variable d'environnement Platform
existe (comme cela semble se produire sur les ordinateurs portables HP) et que la cible de MSBuild contient une référence à un autre projet Visual Studio.
Après avoir renommé la variable d'environnement Platform, ma construction fonctionne maintenant.
Il semble que le paramètre /p:Platform="Any CPU"
soit appliqué à la solution cible mais ne «reporte» pas aux projets référencés. Dans mon cas, le message d'erreur indiquait que les projets référencés utilisaient la variable d'environnement Platform=MCD
.
Cette erreur est trompeuse et peut être causée par un problème différent. Vérifiez le message entier:
The OutputPath property is not set for project 'myproject'. Please check to make sure that you have specified a valid combination of Configuration and Platform for this project. Configuration='myconfig' Platform='AnyCPU'. This error may also appear if some other project is trying to follow a project-to-project reference to this project, this project has been unloaded or is not included in the solution, and the referencing project does not build using the same or an equivalent Configuration or Platform.
Ma configuration de construction manquait ce noeud dans le csproj:
<PlatformTarget>AnyCPU</PlatformTarget>
Bien que AnyCPU soit la plate-forme sélectionnée dans la liste déroulante, le code XML réel n'y était pas. L'ajouter corrige l'inadéquation entre le projet et l'autre projet auquel il faisait référence.