"La proprietà outputpath non è impostata per questo progetto" errore


90

Ho una soluzione multiprogetto in Visual Studio 2008. Ho appena aggiunto una nuova configurazione chiamata Release-VersionIncrement alla soluzione, specificando la configurazione "use release" come base. Tutti i file di progetto sono stati aggiornati con quella configurazione. Tuttavia, quando provo a compilare un progetto specifico utilizzando questa configurazione, ottengo il seguente errore:

Errore 5 La proprietà OutputPath non è impostata per questo progetto. Verifica di aver specificato una combinazione di configurazione / piattaforma valida. Configurazione = 'Release-VersionIncrement' Piattaforma = 'AnyCPU' C: \ WINDOWS \ Microsoft.NET \ Framework \ v3.5 \ Microsoft.Common.targets 539 9 DataConversion

Cosa sta succedendo qui? Il progetto viene compilato correttamente nella configurazione Release o Debug.


6
Ho lottato con questo per ore fino a quando mi sono reso conto che l'elenco a discesa nella definizione di build TFS ha "Any CPU" anziché "AnyCPU" !!!!
The Muffin Man

1
In VS2012, l'elenco a discesa nella configurazione della build è "Any CPU", ma all'interno del file .csproj c'è "AnyCPU", quindi in Jenkins o dalla riga di comando, utilizzare "AnyCPU" funzionerà.
Jirong Hu

Risposte:


94

Di solito ciò accade quando la proprietà OutputPath del file di progetto è vuota. I file di progetto sono solo file MSBuild . Per modificare in Visual Studio: fare clic con il pulsante destro del mouse sul progetto, selezionare "Scarica progetto", quindi fare clic con il pulsante destro del mouse sul progetto scaricato e selezionare "Modifica ...".

Cerca il gruppo di proprietà Release-Versionincrement. Dovrebbe assomigliare a qualcosa

<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>

Quello importante lì è OutputPath, esiste per il tuo file di progetto? In caso contrario, aggiungilo e riprova.


33
Se il percorso di output è corretto e continui a ricevere questo errore, potresti avere riferimenti ad assembly o altri progetti che non esistono più. Elimina i vecchi riferimenti. Questa è stata la mia esperienza.
John K

3
Mi sono appena imbattuto in questo errore e ho dovuto modificare direttamente il file di progetto. Anche se la pagina delle proprietà del progetto diceva "Qualsiasi CPU", la proprietà era inizialmente vuota e ho scelto un'impostazione Platform = BPC dalle mie variabili di ambiente. Dopo aver risolto questo problema e impostato / reimpostato la pagina delle proprietà da Any CPU a x86 e viceversa, non si sarebbe ancora costruito, sostenendo che la piattaforma era ora "x86" (?!?). Abbastanza sicuro, ho seguito i passaggi qui e ho scoperto che ora era impostato su x86, quindi l'ho modificato manualmente e ora tutti sono di nuovo felici. Grazie ragazzi!
DaveN59,

2
Il mio file di progetto aveva il PropertyGroup previsto, con un OutputPath non vuoto, e stavo ottenendo questo errore. L'unica cosa che ho notato è che il PropertyGroup per questa particolare configurazione era il primo elemento sotto il nodo radice nel file e l'attributo Condizione non aveva uno spazio iniziale e finale, a differenza di tutte le altre condizioni di configurazione. A questo punto, ho spostato questo elemento sotto alcune delle altre configurazioni (non sono sicuro del motivo per cui sarebbe stato importante, stavo solo provando cose) e ho aggiunto gli spazi bianchi nella condizione. Dopo questo ha funzionato. Non sono sicuro di cosa abbia fatto la differenza.
Seth Flowers,

2
Ho avuto un altro problema. Ho usato SlowCheetah per creare le mie trasformazioni di configurazione per il mio progetto Windows. Le configurazioni non avevano lo spazio bianco come suggerito da @sethflowers. Li ho aggiunti ma non ha aiutato. Ho visto che c'era un altro gruppo di proprietà tra le configurazioni. Quindi risolto il problema (basta posizionare il gruppo di proprietà sotto i gruppi di proprietà di configurazione del progetto) e quindi il problema è scomparso. Grazie per tutti i suggerimenti qui. Mi ha fatto risparmiare tempo !!!
Ralph Jansen

7
Deffo provalo con \ p: Platform = "AnyCPU" invece di \ p: Platform = "Any CPU". Ha funzionato da me! Stavo guardando questo per anni!
Lee Englestone

78

Ho anche visto questo errore quando il nostro agente di compilazione è stato configurato per eseguire la piattaforma " Any CPU " (con spazi come visualizzato in Visual Studio) anziché " AnyCPU " (una parola come specificato nel file di progetto).


5
Mi sono imbattuto nello stesso problema, sembra che a livello di soluzione, "Any CPU" sia valido, ma a livello di progetto, è "AnyCPU". In altre parole, msbuild myproj.sln /p:Configuration=Debug /p:Platform="Any CPU"andava bene, tuttavia durante la creazione del progetto, ho dovuto omettere lo spazio in Any CPU: msbuild myproj.proj1.csproj /p:Configuration=Debug /p:Platform=AnyCPUper sopprimere l'errore della proprietà Outputpath.
Emil G

2
Incredibile, e che configurazione PITA per CI. Ho lottato con questo per giorni.
Jeremy Holovacs

Ho riscontrato questo errore quando non sono riuscito a creare sul server di build principale e l'alternativa che ho selezionato ha passato "Any CPU" invece di "AnyCPU". Dopo aver verificato c'erano alcune differenze nei numeri di versione di MSBUILD e di altri software. Grazie per la tua risposta,
Gilles

1
Non riesco a credere che lo spazio sia stato il colpevole!
Alexandra

36

Ho avuto lo stesso problema quando ho usato MSBuild per la prima volta. La mia soluzione è: usa decisamente la proprietà OutputPath. Come questo:

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

Questo ha risolto il mio problema per una build di TeamCity Azure Cloud Service. +1
starmandeluxe

Allo stesso modo per me con la build CI di VSO.
StriplingWarrior

11

Nel nostro caso stavamo eseguendo uno script di build sulle nostre scatole per sviluppatori HP. HP ha alcune variabili di ambiente che hanno impostato per i propri scopi e una di queste è PLATFORM (usata, apparentemente, per "HP Easy Setup").

L'eliminazione della variabile d'ambiente PLATFORM ha funzionato.

Puoi anche rendere a prova di futuro il tuo script di build specificando la piattaforma, ad es
msbuild /p:Platform=AnyCPU.


Questo mi ha catturato sul mio nuovo laptop HP - grazie @Boggin - non mi sarebbe venuto in mente.
Rob Cooper

9

Se Visual Studio si lamenta specificamente del fatto che "Platform = 'BPC'", è possibile risolverlo facilmente rimuovendo la variabile di ambiente "Platform".

Elimina questo ragazzaccio.

Ora riavvia Visual Studio e sei a posto.


6

Come ha accennato " Richard Dingwall ", il problema è correlato a VS che utilizza la versione di visualizzazione di " Any CPU " invece della versione di MSBuild che in realtà legge " AnyCPU "

Vai in Build / New Build Definition o Modifica build Definition -> Process -> Configurations to build, apri la finestra di dialogo di selezione della configurazione e in " Platform " invece di selezionare " Any CPU ", aggiungi manualmente " AnyCPU "


6

Come è stato detto, OutputPath deve essere impostato E deve essere inserito prima <Import Project="$(WixTargetsPath)" /> nel file .wixproj


Questo era correlato al mio problema, ho aggiunto una nuova configurazione per un progetto wix dopo averlo creato e la nuova configurazione è stata aggiunta alla fine del file in modo che tutti i PropertyGroup correlati a quella nuova configurazione siano stati inseriti DOPO questa importazione, spostandoli in la parte superiore, proprio accanto alle altre, ha fatto funzionare per me.
Eugenio Miró

4

Ho rimosso Platformla variabile d'ambiente (era BNB o smth così). Il problema è sparito.


1
Sfortunatamente, anche dopo aver rimosso la variabile d'ambiente della piattaforma, è necessario un riavvio completo!
79E09796

4

Oggi stavo aggiungendo la piattaforma x64 alla mia soluzione, quando mi sono imbattuto in questo problema.

Nel mio caso, l'errore diceva:

Costruito $ / ProjectDirectory / ProjectName.csproj per le destinazioni predefinite. c: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (484): la proprietà OutputPath non è impostata per il progetto ProjectName.csproj '. Verifica di aver specificato una combinazione valida di Configurazione e Piattaforma per questo progetto. Configurazione = Piattaforma "Debug" = "x64". Potresti visualizzare questo messaggio perché stai tentando di creare un progetto senza un file di soluzione e hai specificato una configurazione o una piattaforma non predefinita che non esiste per questo progetto.

Sapevo che OutputPathavrebbe dovuto andare bene, poiché questa era una soluzione VS esistente e funzionante. Quindi sono passato al suggerimento successivo: "una valida combinazione di configurazione e piattaforma".

Aha! Visual Studio sta cercando di compilare Configuration='Debug', Platform='x64'. Guardando il mio file di progetto, mi sono reso conto che x64 non era elencato come una delle possibili piattaforme. In altre parole, avevo le seguenti voci (abbreviate):

  <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>

Soluzione facile quindi: aggiungi solo le voci x64!

Ho copiato / incollato le voci x86 e le ho modificate per utilizzare x64. Si noti che ho anche modificato i percorsi in modo che questi non sovrascrivano le build 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>

3

Ho lottato con questo per un po 'e poi ho anche scaricato, compilato e quindi ricaricato il progetto incriminato nella soluzione, quindi MSBuild ha funzionato correttamente.


3

Come Scott S, ho dovuto eliminare la variabile d'ambiente "Platform" .

Quindi riavvia VS, ed è ok: niente più messaggi di errore ...


Questo ha funzionato anche per me quando ho eliminato la piattaforma che avevo specificato nel mio passaggio Build vNext MSBuild.
4imble

2

Il problema aveva a che fare con la configurazione del mio progetto. Ecco lo scenario:

Riferimenti della soluzione A:

Progetto X fa riferimento a Progetto Y
Progetto Y

Riferimenti alla soluzione B (quella che sto cercando di creare):

Progetto X Progetto Z

La mia soluzione era creare una configurazione con lo stesso nome per la soluzione A, ricostruirla e quindi ricostruire la soluzione B. Questo ha risolto il problema.


1
Stavo riscontrando lo stesso errore e questa soluzione è stata l'unica cosa che ha funzionato per me. Fondamentalmente, avevo una configurazione della piattaforma della soluzione "Win32" che crea un progetto silverlight con la configurazione della piattaforma "Any CPU" e anche un progetto di applicazione web con la configurazione della piattaforma "x86" che ospita il progetto silverlight. Ho dovuto aggiungere una nuova configurazione della piattaforma del progetto al progetto silverlight, "x86" (e mantenere quella vecchia come configurazione predefinita) affinché msbuild funzionasse come previsto.
Rami A.

2

Ho ricevuto lo stesso messaggio di errore. È stato causato da un riferimento a un progetto che è stato scaricato e non richiesto dal linker (altrimenti non sarebbe riuscito in fase di compilazione). La rimozione del riferimento offensivo ha risolto il problema.


2

Nel mio caso (VS2010) ho rimosso la stringa nella casella "OutputPath" che si trova nella scheda "Build" e l'ho lasciata vuota. Poi ho ricostruito la soluzione. La compilazione ha avuto successo e VS ha inserito la directory corrente "./" in "OutputPath". Ho sostituito la directory corrente "./" con il mio percorso ("bin \ x64 \ Release \" - basti dire che questo è il percorso esatto della cartella di cui VS si lamentava in primo luogo) e la ricostruzione ha avuto successo di nuovo.


1

Nel mio caso la proprietà OutputPath è stata impostata nei file di progetto. Ma scaricare, ricaricare e poi ricostruire lo ha risolto.


1

Quando ho aggiunto una nuova configurazione della soluzione nella mia soluzione, ho ricevuto un errore: "La proprietà OutputPath non è impostata per il progetto X. Verifica di aver specificato una combinazione valida di Configurazione e Piattaforma per questo progetto. Configurazione = 'QA 'Platform =' AnyCPU '. Questo errore può anche apparire se un altro progetto sta cercando di seguire un riferimento da progetto a progetto a questo progetto, questo progetto è stato scaricato o non è incluso nella soluzione e il progetto di riferimento non lo fa costruire utilizzando la stessa configurazione o una piattaforma equivalente. ProjectY ".

Nel mio caso il problema era dovuto alla parte evidenziata della descrizione dell'errore. La parte del progetto X della mia soluzione era avere un riferimento di progetto a ProjectY di un'altra soluzione (ramo diverso).

Ho risolto questo problema modificando il progetto X per utilizzare il riferimento del progetto a ProjectY nella soluzione corrente. Spero che questo aiuti qualcuno con problemi simili.


0

Nel mio caso il nuovo blocco XML "PropertyGroup" è stato generato in fondo al documento. L'ho appena sostituito dopo altri tag "PropertyGroup" e questo ha risolto il problema.


0

Ho creato un nuovo progetto in una nuova soluzione che fa riferimento a progetti esistenti. Questo errore si verifica quando aggiungo un progetto esistente (ad esempio progetto 1) e provo a creare senza aggiungere altri progetti a cui fa riferimento il progetto 1.

Assicurati solo che tutti i progetti relativi vengano aggiunti alla nuova soluzione e l'errore scompaia.


0

Ho avuto lo stesso errore, quindi ho controllato le impostazioni del progetto e nella sezione "Build" c'è l'opzione "Build output path". E il valore era vuoto. Quindi ho inserito il valore "bin \" e un errore è scomparso. Ha risolto il mio problema.


0

Se decidi di impostare OutputPath come parametro, e il tuo percorso è come: bin\Release\\allora ricordati di aggiungere \alla fine così: /p:OutputPath=bin\Release\\\\mi ci è voluto un po 'per capire che era il caso


0

Ho avuto lo stesso problema. L'ho risolto pulendo e ricostruendo i progetti.


0

Ho avuto lo stesso problema e l'unica soluzione che aiuta è stata impostare manualmente la configurazione di build in ogni progetto NCrunch.

Apri la finestra NCrunch, dove puoi vedere lo stato di ogni build e dove puoi vedere che la build fallisce. Fai clic con il pulsante destro del mouse sul progetto che non riesce a compilare e fai clic su "configura componente selezionato". Vedrai sotto "Impostazioni build" la proprietà "Usa configurazione build" impostala ad es. "Debug" e la proprietà "Usa piattaforma build" impostala su ad esempio "AnyCPU". (Tieni presente che le impostazioni di build e configurazione impostate devono essere presenti nelle Impostazioni di konfigration)

Fallo per tutti i tuoi progetti, ma non per il tuo progetto di prova. Dopo questo tutto funziona bene per me.


0

Ho avuto lo stesso problema, l'ho risolto aggiungendo configurazioni mancanti al progetto che stava fallendo.

BUILD -> Configuration Manager ->

Sotto Configurazione colonna Aggiungi

Nota: questo è accaduto solo perché ho una configurazione personalizzata e i progetti appena creati non avevano la configurazione.


0

Se qualcuno sta ottenendo questo nei suoi registri NCrunch, controlla se la PropertyGroupdefinizione dei valori 'Debug' / 'Release' e 'AnyCPU' / 'x86' si trova prima dei gruppi di proprietà che utilizzano quei valori nella loro condizione.

<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>

Ha funzionato per me.


0

Nel mio caso, ho provato a spostare il gruppo di proprietà che conteneva la mia configurazione personalizzata al di sotto di quelli standard. L'ha risolto per me.


0

Ho appena avuto questo con VS2015 Professional:

La proprietà OutputPath non è impostata per il progetto "xxxxx.csproj". Verifica di aver specificato una combinazione valida di Configurazione e Piattaforma per questo progetto.

Questo è anche giocoleria multi-progetto tra debug / rilascio e diversi obiettivi. Ad un certo punto stavo giocherellando con le configurazioni di build e so che può rovinare VS, quindi le ho ritirate dal repository. Ancora non va bene. OutputPath è stato impostato, non c'erano più diff con uno stato buono noto quindi c'era sicuramente qualcosa che non andava con la mia installazione locale.

Ha aperto il programma di installazione di VS2015 e fatto clic su "Ripara", e voilà ... torna alla normalità (almeno finora!)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.