Error "la propiedad de ruta de salida no está configurada para este proyecto"

90

Tengo una solución de proyectos múltiples en Visual Studio 2008. Acabo de agregar una nueva configuración llamada Release-VersionIncrement a la solución, especificando la configuración de "usar versión" como línea de base. Todos los archivos del proyecto se actualizaron con esa configuración. Sin embargo, cuando intento compilar un proyecto específico con esta configuración, aparece el siguiente error:

Error 5 La propiedad OutputPath no está establecida para este proyecto. Verifique para asegurarse de haber especificado una combinación de configuración / plataforma válida. Configuración = 'Release-VersionIncrement' Platform = 'AnyCPU' C: \ WINDOWS \ Microsoft.NET \ Framework \ v3.5 \ Microsoft.Common.targets 539 9 Conversión de datos

¿Que esta pasando aqui? El proyecto se compila bien en la configuración Release o Debug.

laconicdev
fuente
6
Luché con esto durante horas hasta que me di cuenta de que la lista desplegable en la definición de compilación de TFS tiene "Cualquier CPU" en lugar de "Cualquier CPU".
The Muffin Man
1
En VS2012, el menú desplegable en la configuración de compilación es "Cualquier CPU", pero dentro del archivo .csproj está "AnyCPU", por lo que en Jenkins o en la línea de comandos, el uso de "AnyCPU" funcionará.
Jirong Hu

Respuestas:

94

Por lo general, esto sucede cuando la propiedad OutputPath del archivo de proyecto está en blanco. Los archivos de proyecto son solo archivos de MSBuild . Para editar en Visual Studio: Haga clic derecho en el proyecto, elija "Descargar proyecto", luego haga clic derecho en el proyecto descargado y seleccione "Editar ...".

Busque el grupo de propiedades Release-Versionincrement. Debería verse algo como

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

El importante es OutputPath, ¿existe para su archivo de proyecto? Si no, agréguelo y vuelva a intentarlo.

Sayed Ibrahim Hashimi
fuente
33
Si la ruta de salida es correcta y aún recibe este error, es posible que tenga referencias a ensamblados u otros proyectos que ya no existen. Limpia las referencias antiguas. Esa fue mi experiencia.
John K
3
Me encontré con este error y tuve que modificar el archivo del proyecto directamente. Aunque la página de propiedades del proyecto decía "Cualquier CPU", la propiedad se estableció en blanco inicialmente y recogí una configuración Platform = BPC de mis variables de entorno. Después de arreglar eso y configurar / restablecer la página de propiedades de Cualquier CPU a x86 y viceversa, todavía no se compilaba, alegando que la plataforma ahora era 'x86' (?!?). Efectivamente, seguí los pasos aquí y descubrí que ahora estaba configurado en x86, así que lo edité manualmente y ahora todos están felices nuevamente. ¡Gracias chicos!
DaveN59
2
Mi archivo de proyecto tenía el PropertyGroup esperado, con un OutputPath no vacío, y recibía este error. Lo único que noté fue que PropertyGroup para esta configuración en particular era el primer elemento debajo del nodo raíz en el archivo, y el atributo Condition no tenía un espacio inicial y final, a diferencia de todas las demás condiciones de configuración. En este punto, moví este elemento debajo de algunas de las otras configuraciones (no estoy seguro de por qué importaría, solo estaba probando cosas) y agregué el espacio en blanco en la condición. Después de esto funcionó. No estoy seguro de cuál marcó la diferencia.
Seth Flowers
2
Tuve otro problema. Usé SlowCheetah para crear mis transformaciones de configuración para mi proyecto de Windows. Las configuraciones no tenían el espacio en blanco como sugirió @sethflowers. Los agregué pero eso no ayudó. Vi que había otro grupo de propiedades entre las configuraciones. Así que resolvió eso (simplemente colocó el grupo de propiedades debajo de los grupos de propiedades de configuración del proyecto) y luego el problema desapareció. Gracias por todas las sugerencias aquí. ¡¡¡Me ahorró tiempo !!!
Ralph Jansen
7
Deffo inténtelo con \ p: Platform = "AnyCPU" en lugar de \ p: Platform = "Any CPU". ¡Eso funcionó para mí! ¡Estuve mirando esto durante años!
Lee Englestone
78

También he visto este error cuando nuestro agente de compilación estaba configurado para ejecutar la plataforma " Cualquier CPU " (con espacios como se muestra en Visual Studio) en lugar de " AnyCPU " (una palabra como se especifica en el archivo del proyecto).

Richard Dingwall
fuente
5
Me encontré con el mismo problema, parece que en el nivel de la solución, "Cualquier CPU" es válido, pero en el nivel del proyecto, es "Cualquier CPU". En otras palabras, msbuild myproj.sln /p:Configuration=Debug /p:Platform="Any CPU"estuvo bien, sin embargo, al construir el proyecto, tuve que omitir el espacio en Cualquier CPU: msbuild myproj.proj1.csproj /p:Configuration=Debug /p:Platform=AnyCPUpara suprimir el error de la propiedad Outputpath.
Emil G
2
Increíble, y qué PITA para la configuración de CI. He estado luchando con esto durante días.
Jeremy Holovacs
Tuve este error cuando no pude construir en el servidor de compilación principal y el alternativo que seleccioné pasó "Cualquier CPU" en lugar de "Cualquier CPU". Después de verificar, hubo algunas diferencias en los números de versión de MSBUILD y otro software. Gracias por su respuesta,
Gilles
1
¡No puedo creer que el espacio fuera el culpable!
Alexandra
36

Tuve el mismo problema cuando usé MSBuild por primera vez. Mi solución es: usar la propiedad OutputPath definitivamente. Me gusta esto:

msbuild XXX.csproj /p:OutputPath=bin\Debug.
Peter Mortensen
fuente
Esto resolvió mi problema para una compilación de TeamCity Azure Cloud Service. +1
starmandeluxe
Lo mismo para mí con CI Build de VSO.
StriplingWarrior
11

En nuestro caso, estábamos ejecutando un script de compilación en nuestras cajas de desarrollador de HP. HP tiene algunas variables de entorno que han configurado para sus propios fines y una de ellas es PLATFORM (que aparentemente se usa para "HP Easy Setup").

La eliminación de la variable de entorno PLATFORM funcionó.

También puede preparar su script de compilación para el futuro especificando la plataforma, es decir
msbuild /p:Platform=AnyCPU.

Boggin
fuente
Esto me atrapó en mi nueva computadora portátil HP, gracias @Boggin, esto no se me habría ocurrido.
Rob Cooper
9

Si Visual Studio se queja específicamente de que "Platform = 'BPC'", puede solucionarlo fácilmente eliminando la variable de entorno "Platform".

Elimina a este chico malo.

Ahora reinicie Visual Studio y estará listo.

Scott S
fuente
6

Como insinuó " Richard Dingwall ", el problema está relacionado con VS que usa la versión de visualización de " Cualquier CPU " en lugar de la versión de MSBuild que en realidad dice " AnyCPU "

Id a Construir / Nueva definición de build o Editar definición de Build -> Proceso -> Configuraciones de construir, abra el diálogo de selección de la configuración y de " plataforma " en lugar de seleccionar " Cualquier CPU ", añadir manualmente " Cualquier CPU "

Robert Hoffmann
fuente
6

Como se dijo, OutputPath debe establecerse Y debe colocarse antes <Import Project="$(WixTargetsPath)" /> en el archivo .wixproj

OlegMax
fuente
Este estaba relacionado con mi problema, agregué una nueva configuración para un proyecto wix después de crearlo y la nueva configuración se agregó al final del archivo, por lo que todos los PropertyGroups relacionados con esa nueva configuración se colocaron DESPUÉS de esta importación, moviéndolos a la parte superior, justo al lado de las otras, hizo que me funcionara.
Eugenio Miró
4

He eliminado Platformla variable de entorno (era BNB o algo así). El problema se ha ido.

espina
fuente
1
Desafortunadamente, incluso después de eliminar la variable de entorno Platform, ¡requiere un reinicio completo!
79E09796
4

Estaba agregando la plataforma x64 a mi solución hoy, cuando encontré este problema.

En mi caso, el error decía:

Construido $ / ProjectDirectory / ProjectName.csproj para destinos predeterminados. c: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (484): la propiedad OutputPath no está configurada para el proyecto ProjectName.csproj '. Verifique para asegurarse de haber especificado una combinación válida de Configuración y Plataforma para este proyecto. Configuración = 'Depuración' Plataforma = 'x64'. Es posible que vea este mensaje porque está intentando crear un proyecto sin un archivo de solución y ha especificado una Configuración o Plataforma no predeterminada que no existe para este proyecto.

Sabía que OutputPathdebería estar bien, ya que se trataba de una solución VS existente y funcional. Así que pasé a la siguiente sugerencia: "una combinación válida de Configuración y Plataforma".

¡Ajá! Visual Studio está intentando construir Configuration='Debug', Platform='x64'. Al mirar el archivo de mi proyecto, me di cuenta de que x64 no figuraba como una de las posibles plataformas. En otras palabras, tenía las siguientes entradas (abreviadas):

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

Entonces, solución fácil: ¡solo agregue entradas x64!

Copié / pegué las entradas x86 y las cambié para usar x64. Tenga en cuenta que también modifiqué las rutas para que no sobrescriban las compilaciones 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>
Gustavo Mori
fuente
3

Luché con esto por un tiempo y luego también descargué, construí y luego recargué el proyecto ofensivo en la solución, y luego MSBuild funcionó correctamente.

Glenn
fuente
3

Como Scott S, tuve que eliminar la variable de entorno "Plataforma" .

Luego reinicie VS, y está bien: no más mensaje de error ...

M Denis
fuente
Esto funcionó para mí cuando eliminé la plataforma que había especificado en mi paso Build vNext MSBuild también.
4imble
2

El problema tenía que ver con la configuración de mi proyecto. Aquí está el escenario:

Referencias de la Solución A:

Proyecto X hace referencia al Proyecto Y
Proyecto Y

La solución B (la que estoy tratando de construir) hace referencia a:

Proyecto X Proyecto Z

Mi solución fue crear una configuración con el mismo nombre para la Solución A, reconstruirla y luego reconstruir la Solución B. Esto solucionó el problema.

laconicdev
fuente
1
Me estaba encontrando con el mismo error y esta solución fue lo único que funcionó para mí. Básicamente, tenía una configuración de plataforma de solución "Win32" que construye un proyecto Silverlight con la configuración de plataforma "Cualquier CPU" y también un proyecto de aplicación web con la configuración de plataforma "x86" que aloja el proyecto Silverlight. Tuve que agregar una nueva configuración de plataforma de proyecto al proyecto silverlight, "x86" (y mantener la anterior como configuración predeterminada) para que msbuild funcione como se esperaba.
Rami A.
2

Tuve este mismo mensaje de error. Fue causado por tener una referencia a un proyecto que fue descargado y no requerido por el vinculador (de lo contrario, habría fallado en el momento de la compilación). Eliminar la referencia ofensiva resolvió el problema.

Gishe
fuente
2

En mi caso (VS2010) eliminé la cadena en el cuadro "OutputPath" que está en la pestaña "Build" y la dejé en blanco. Luego reconstruí la solución. La compilación fue exitosa y VS insertó el directorio actual "./" en "OutputPath". Reemplacé el directorio actual "./" con mi ruta ("bin \ x64 \ Release \" - basta con decir que esta es la ruta exacta de la carpeta que VS se quejaba en primer lugar) y la reconstrucción fue exitosa nuevamente.

Tomasz Stypich
fuente
1

En mi caso, la propiedad OutputPath se estableció en los archivos del proyecto. Pero descargar, recargar y luego reconstruir lo solucionó.

farkashon
fuente
1

Cuando agregué una nueva configuración de solución en mi solución, recibí un error, "La propiedad OutputPath no está configurada para el proyecto X. Verifique que haya especificado una combinación válida de Configuración y Plataforma para este proyecto. Configuración = 'QA 'Platform =' AnyCPU '. Este error también puede aparecer si algún otro proyecto está intentando seguir una referencia de proyecto a proyecto a este proyecto, este proyecto se ha descargado o no está incluido en la solución, y el proyecto de referencia no compilar utilizando la misma Configuración o Plataforma o una equivalente. ProyectoY ".

En mi caso, el problema se debió a la parte resaltada de la descripción del error. Project X parte de mi solución tenía una referencia de proyecto a ProjectY de otra solución (rama diferente).

Resolví este problema modificando el proyecto X para usar la referencia del proyecto a ProjectY en la solución actual. Espero que esto ayude a alguien que tenga un problema similar.

BNJ
fuente
0

En mi caso, el nuevo bloque XML "PropertyGroup" se generó en la parte inferior del documento. Lo reemplacé después de otras etiquetas "PropertyGroup" y esto resolvió el problema.

Alexander Pavlenko
fuente
0

Creé un nuevo proyecto en una nueva solución que hace referencia a proyectos existentes. Este error ocurre cuando agrego un proyecto existente (digamos proyecto 1) e intento construir sin agregar otros proyectos a los que hace referencia el proyecto 1.

Solo asegúrese de que todos los proyectos relacionados se agreguen a la nueva solución y el error desaparezca.

Ike
fuente
0

Tuve el mismo error, así que miré la configuración del proyecto y allí, en la sección "Crear", está la opción "Crear ruta de salida". Y el valor estaba vacío. Así que llené el valor "bin \" y desapareció el error. Resolvió mi problema.

Lukas Dvorak
fuente
0

Si decide establecer OutputPath como un parámetro, y su ruta es como: bin\Release\\entonces recuerde agregar \al final así: /p:OutputPath=bin\Release\\\\me tomó un tiempo darme cuenta de que era el caso

Marysia
fuente
0

Yo tuve el mismo problema. Lo arreglé limpiando y reconstruí los proyectos.

usuario5920105
fuente
0

Tuve el mismo problema y la única solución que me ayudó fue establecer la configuración de compilación manualmente en cada proyecto de NCrunch.

Abra la ventana NCrunch, donde puede ver el estado de cada compilación y donde puede ver que la compilación falla. Haga clic con el botón derecho en el proyecto que no se puede compilar y haga clic en "configurar el componente seleccionado", allí verá en "Configuración de compilación" la propiedad "Usar configuración de compilación" configúrelo en, por ejemplo, "Depurar" y la propiedad "Usar plataforma de compilación" configúrelo como por ejemplo, "AnyCPU". (Tenga en cuenta que los ajustes de compilación y configuración que establezca deben existir en su configuración de konfigration)

Haga esto para todos sus proyectos, pero no para su proyecto de prueba. Después de esto, todo funciona bien para mí.

squadwuschel
fuente
0

Tuve el mismo problema, lo solucioné agregando configuraciones faltantes al proyecto que estaba fallando.

CONSTRUIR -> Administrador de configuración ->

En la columna de configuración Agregar

Nota: Esto solo sucedió porque tengo una configuración personalizada y los proyectos recién creados no tenían la configuración.

pmeyer
fuente
0

Si alguien está obteniendo este en sus registros de NCrunch, verifique si los PropertyGroupvalores 'Debug' / 'Release' y 'AnyCPU' / 'x86' están definidos antes de los grupos de propiedades que usan esos valores en su condición.

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

Trabajó para mi.

Waescher
fuente
0

En mi caso, traté de mover el grupo de propiedades que contenía mi configuración personalizada por debajo de las estándar. Me lo resolvió.

ermenegild0
fuente
0

Acabo de tener esto con VS2015 Professional:

La propiedad OutputPath no está establecida para el proyecto 'xxxxx.csproj'. Verifique para asegurarse de haber especificado una combinación válida de Configuración y Plataforma para este proyecto.

Esto también es un malabarismo multiproyecto entre depuración / liberación y diferentes objetivos. Había estado jugando con configuraciones de compilación en algún momento y sé que eso puede estropear VS, así que las retiré del repositorio. Todavía no es bueno. OutputPath estaba configurado, ya no había diferencias con un buen estado conocido, por lo que definitivamente había algo mal en mi instalación local.

Abrí el instalador VS2015 y presioné "Reparar", y listo ... de vuelta a la normalidad (¡al menos hasta ahora!)

Etherman
fuente