2009-03-11 11 views
19

Creo que el problema está documentado here y parece que podría ser un error en Visual Studio, pero me pregunto si alguien sabe de una solución alternativa.

Básicamente tengo las siguientes 2 líneas (entre otras cosas) una detrás de la otra en el evento de preconstrucción.

"C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe" /p:configuration=Release;platform=x86 /t:rebuild "$(SolutionDir)Folder1\Project1.csproj" 

"C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe" /p:configuration=Release;platform=x86 /t:rebuild "$(SolutionDir)Folder2\Folder3\Project2.csproj" 

El primero de ellos tiene éxito y el otro falla diciendo que "El comando "" C: \ WINDOWS \ Microsoft.NET \ Framework \ v3.5 \ MSBuild.exe"/t: = configuración de lanzamiento; plataforma = x86/t: reconstruir "* Undefined * Carpeta2 \ Folder3 \ Project2.csproj"" salido con código 1.

(espacio insertado entre causa astrisk de formatear SO)

Editar: descubierto el problema era que uno de los otros proyectos con la misma línea que su precompilación falló, ya que MSBuild no conoce las macros.

+0

autor FYI: el enlace está roto (comentarios de VS). – yzorg

Respuesta

0

No especifica si esto sucede para muchos proyectos o solo uno o dos.

Si es sólo en uno o dos proyectos, una solución temporal podría ser para reemplazar $ (SolutionDir) con la ruta explícita que Carpeta2 se encuentra en, por ejemplo, algo como:.

"C:\WINDOWS\Microsoft.NET\Framework\v3.5\MSBuild.exe" /p:configuration=Release;platform=x86 /t:rebuild "C:\AllSolutions\ExampleSolutions\Folder2\Folder3\Project2.csproj" 

pero con la ruta correcta para su proyecto.

39

Lo arreglé reemplazando todo $(SolutionDir) con $(ProjectDir)..\..

Se debe a que MSBuild ejecuta cada proyecto de forma independiente y no responde a la Solución. Funcionó bien en VS2010, pero no en el servidor de compilación.

+6

No puedo creer que esto siga siendo un problema en 2015 – drzaus

+0

hilarantemente, también [me di cuenta de esto] (http://stackoverflow.com/a/20846447/1037948) unas 2 semanas más tarde que tú, pero recientemente me olvidé sabía la respuesta y terminó aquí – drzaus

+0

esto se debe a que no es un problema, está construyendo el csproj, no la solución –

Cuestiones relacionadas