2012-05-13 5 views
6

Estoy intentando construir un proyecto MVC4 de prueba en OS X 10.7.4 usando Mono 2.10.9. Creé una nueva aplicación web MVC4 vacía en Visual Studio, usé git para transferir el código fuente de Windows a Mac OS X. Luego ejecuté xbuild para la restauración del paquete .nuget, pero cuando compilo en monodesarrollo recibo un extraño error:Webapplication.targets faltantes al construir un proyecto MVC4 en MonoDevelop en OS X 10.7.4

/Users/tamasnagy/Developer/Spellbound/Spellbound/Spellbound.csproj: Error: /Library/Frameworks/Mono.framework/Versions/2.10.9/lib/mono/xbuild/Microsoft/VisualStudio/v10.0/WebApplications/Microsoft.WebApplication.targets: Project file could not be imported, it was being imported by /Users/tamasnagy/Developer/Spellbound/Spellbound/Spellbound.csproj: Imported project: "/Library/Frameworks/Mono.framework/Versions/2.10.9/lib/mono/xbuild/Microsoft/VisualStudio/v10.0/WebApplications/Microsoft.WebApplication.targets" does not exist. (Spellbound)

¿Qué podría significar esto? Esto también ocurre cuando simplemente creo un nuevo proyecto de MVC en MonoDevelop y presiono compilar. ¿Algunas ideas?

Respuesta

1

La implementación de MSBuild de Mono (xbuild) no tiene una implementación de los objetivos para los proyectos de ASP.NET.

Es posible que pueda compilar en MonoDevelop. Asegúrese de que la integración experimental de xbuild esté desactivada en las preferencias de MonoDevelop.

+0

Si apaga XBuild/MSBuild qué no se pierde hacia fuera en Nuget paquete de restauración? Tienes que volver a restaurar manualmente los paquetes, ¿verdad? – sumitkm

3

cambiar el archivo para importar csproj v9.0, como así ...

<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v9.0\WebApplications\Microsoft.WebApplication.targets" /> 
+0

Esto no funciona más ya que el maestro MD insiste en cambiar v9.0 a v10.0 – firegrass

8

crea un enlace simbólico:

cd/usr/lib/mono/xbuild/Microsoft/VisualStudio/v9. 0

ln -s v9.0 v10.0

que tienen el mismo ubuntu 12.04 exacta distribución en dos ordenadores diferentes y no podía entender por qué mono se compilará en un equipo y no a la inversa. Pero bueno, el enlace simbólico solucionó el problema.

+0

Crear un enlace simbólico es probablemente la mejor solución si tiene que usar XBuild/MSBuild (que es bueno tener cuando quiere cosas como Restauración del paquete Nuget). – sumitkm

+1

Esta es una mejor respuesta que la aceptada. –

+0

Lo mismo ocurre con las versiones más nuevas de Visual Studio: http://stackoverflow.com/a/35955692/200987 – oligofren

0

Sé que esta es una pregunta antigua, pero surgió al buscar cómo usar WebApplications.targets en OSX, por lo que aún vale la pena responder. Con la versión actual de Mono (5.x), se incluye Webapplication.targets, por lo que ahora todo lo que tiene que hacer es configurar el VSToolsPath, y todo debería funcionar.

Si está utilizando cáscara del golpe estándar, el archivo .profile es el lugar para ponerlo:

export VSToolsPath=/Library/Frameworks/Mono.framework/Versions/Current/lib/mono/xbuild/Microsoft/VisualStudio/v15.0/ 
Cuestiones relacionadas