2009-07-08 19 views
87

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 "use release" como línea base. Todos los archivos del proyecto se actualizaron con esa configuración. Sin embargo, cuando estoy tratando de compilar un proyecto específico utilizando esta configuración, me sale el siguiente error:"la propiedad de la ruta de salida no está configurada para este proyecto" error

Error 5 The OutputPath property is not set for this project. Please check to make sure that you have specified a valid Configuration/Platform combination. Configuration='Release-VersionIncrement' Platform='AnyCPU' C:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets 539 9 DataConversion

¿Qué está pasando aquí? El proyecto compila bien en la configuración de Liberación o Depuración.

+6

Luché con esto durante horas hasta que me di cuenta de que la lista desplegable en la definición de compilación TFS tiene "Cualquier CPU" en lugar de "AnyCPU" !!!! –

+1

En VS2012, el menú desplegable en la configuración de compilación es "Cualquier CPU", pero dentro del archivo .csproj es "AnyCPU", por lo que en Jenkins o en la línea de comandos, el uso "AnyCPU" funcionará. –

Respuesta

93

Normalmente esto ocurre cuando la propiedad OutputPath del archivo de proyecto está en blanco. Los archivos de proyecto son solo MSBuild. Para editar en Visual Studio: haga clic con el botón derecho en el proyecto, elija "Descargar proyecto", luego haga clic con el botón derecho en el proyecto descargado y seleccione "Editar ...".

Busque el grupo de propiedades Release-Versionincrement. Debería verse algo así 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> 

Lo importante allí es OutputPath, ¿existe para su archivo de proyecto? Si no, agrégalo y vuelve a intentarlo.

+0

Sayed, Sí, lo verifiqué, y el archivo de proyecto para el proyecto que tiene problemas tiene la propiedad OutputPath. – laconicdev

+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 viejas referencias. Esa fue mi experiencia. –

+3

Acabo de tropezar 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 configuró en blanco inicialmente y elegí 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, aún 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 todo el mundo está contento de nuevo. ¡Gracias chicos! – DaveN59

2

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

referencias Solución A:

Project X references Project Y
Project Y

Solución B (el que yo estoy tratando de construir) referencias:

Project X Project Z

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

+1

Me encontré 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 crea un proyecto Silverlight con la configuración de la plataforma "Any 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 el antiguo como configuración predeterminada) para que msbuild funcione como se esperaba. –

34

Tuve el mismo problema cuando usaba MSBuild primero. Mi solución es: usar definitivamente la propiedad OutputPath. De esta manera:

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

Esto resolvió mi problema para una compilación de TeamCity Azure Cloud Service. +1 – starmandeluxe

+0

Del mismo modo para mí con CI Build de VSO. – StriplingWarrior

74

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

+4

Me encontré con el mismo problema, parece que en el nivel de solución, "Cualquier CPU" es válida, pero a nivel de proyecto, es "AnyCPU". En otras palabras, 'msbuild myproj.sln/p: Configuration = Debug/p: Platform =" Any CPU "' estaba bien, sin embargo cuando construí el proyecto, tuve que omitir el espacio en Cualquier CPU: 'msbuild myproj.proj1. csproj/p: Configuration = Debug/p: Platform = AnyCPU' para suprimir el error de propiedad de la ruta de salida. –

+2

Increíble, y qué configuración de PITA para CI. He estado luchando con esto por días. –

+0

Tuve este error cuando no pude construir en el servidor de compilación principal y la alternativa que seleccioné pasó "Cualquier CPU" en lugar de "AnyCPU". 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

En mi caso, la propiedad OutputPath se estableció como propiedad en los archivos del proyecto. Pero la descarga, la recarga y la reconstrucción lo arreglaron.

4

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

+1

Desafortunadamente, incluso después de eliminar la variable de entorno de la plataforma, ¡se requiere un reinicio completo! – 79E09796

2

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

6

Al igual que "Richard Dingwall" dio a entender, el problema está relacionado con VS utilizando el visualización de la versión de "Cualquier CPU" en lugar de la versión de MSBuild que en realidad se lee "Cualquier CPU"

Go en Build/New Build Definition o Edit Build Definition -> Process -> Configurations to build, abra el cuadro de diálogo de selección de configuración y en "Platform" en lugar de seleccionar "Any CPU", agregue manualmente "AnyCPU "

9

En nuestro caso, estábamos ejecutando un script de compilación en nuestros cuadros de desarrollador de HP. HP tiene algunas variables de entorno que han configurado para sus propios fines y una de ellas es PLATAFORMA (utilizada, al parecer, para "Configuración fácil de HP").

Borrando la variable de entorno PLATFORM funcionó.

También podría proteger su script de compilación en el futuro especificando la plataforma, es decir,
msbuild /p:Platform=AnyCPU.

+0

Esto me sorprendió en mi nueva computadora portátil HP - gracias @Boggin - esto no se me habría ocurrido. –

2

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

0

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

4

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

En mi caso, el error de lectura:

Built $/ProjectDirectory/ProjectName.csproj for default targets. c:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets (484): 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='Debug' Platform='x64'. 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.

sabía que el OutputPath debe estar bien, ya que esta fue una ya existente, trabajando VS solución. Así que pasé a la siguiente sugerencia: "una combinación válida de configuración y plataforma".

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

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

Solución fácil: solo agregue x64 entradas.

Copié/pegué las entradas x86 y las cambié para usar x64. Nótese también he modificado los caminos por lo que estos no sobreescriben x86 construye:

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

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

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 el proyecto 1) y trato de construir sin agregar otros proyectos que proyectan 1 referencia.

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

7

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

Delete this bad boy.

Ahora reinicie Visual Studio y que son buenos para ir.

0

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

6

como se ha dicho, OutputPath debe ajustarse y debe ser colocado antes <Import Project="$(WixTargetsPath)" /> en .wixproj archivo

+0

Éste estaba relacionado con mi problema, agregué una nueva configuración para un proyecto wix después de que lo creé y la nueva configuración se agregó al final del archivo para que todos los grupos de propiedades relacionados a esa nueva configuración se colocaran DESPUÉS de esta importación, moviéndolos arriba, justo al lado de los otros, lo hizo funcionar para mí. –

+0

Este problema resolvió mi problema con wix. Gracias. – Simon

3

mientras Scott S, he tenido que eliminar la "Plataforma" variable de entorno.

continuación, reinicie VS, y que está bien: no más mensaje de error ...

+0

Esto funcionó para mí cuando borré la plataforma que había especificado en mi paso Crear vSiguiente MSBuild también. – 4imble

0

Si decide establecer un parámetro OutputPath como, y su trayectoria es como: bin\Release\\ continuación, no olvide añadirlo \ al final de esa : /p:OutputPath=bin\Release\\\\ me llevó un tiempo darme cuenta de que era el caso

0

Tuve el mismo problema. Lo arreglé por limpio y reconstruí los proyectos.

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 se puede ver que la compilación falla. Haga clic derecho en el proyecto que no se puede construir y haga clic en "configurar el componente seleccionado" allí se ve en "Configuración de la construcción" de la propiedad "Usar confoguración de la construcción", configúrelo en p. "Depurar" y la propiedad "Usar plataforma de compilación" configurarlo, por ejemplo, "AnyCPU". (Tenga en cuenta que las configuraciones y configuraciones que configuró deben existir en su configuración de configuración)

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

0

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

BUILD -> Configuration Manager ->

Bajo Configuración de columnas Añadir

Nota: Esto sólo pasó a ser porque tengo la configuración personalizada y proyectos de nueva creación no tener la configuración.

0

Si alguien está recibiendo éste en sus registros NCrunch, comprobar si el PropertyGroup definir 'depuración' los valores de/'Release' y 'Cualquier CPU'/'x 86' situada antes los grupos de propiedades utilizando 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> 

Funcionó para mí.

0

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

+0

Esto realmente no responde la pregunta. Si tiene una pregunta diferente, puede formularla haciendo clic en [Preguntar pregunta] (https://stackoverflow.com/questions/ask). También puede [agregar una recompensa] (https://stackoverflow.com/help/privileges/set-bounties) para atraer más atención a esta pregunta una vez que tenga suficiente [reputación] (https://stackoverflow.com/help/ que-reputación). - [De la crítica] (/ review/low-quality-posts/17034889) –

1

Cuando agregué una nueva configuración de solución en mi solución, recibí un error, "La propiedad OutputPath no está establecida 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á tratando de seguir una referencia de proyecto a proyecto a este proyecto, este proyecto ha sido descargado o no está incluido en la solución, y el proyecto de referencia no se crea utilizando la misma o una Configuración o Plataforma equivalente. ProjectY ".

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

He resuelto este problema modificando el proyecto X para que utilice la referencia de proyecto de ProjectY en la solución actual. Espero que esto ayude a alguien a tener problemas similares.

Cuestiones relacionadas