2012-05-13 3 views
6

Sto provando a creare un progetto MVC4 di prova su OS X 10.7.4 utilizzando Mono 2.10.9. Ho creato una nuova applicazione web MVC4 vuota in Visual Studio utilizzata git per trasferire il codice sorgente da Windows a Mac OS X. Ho quindi eseguito xbuild per il ripristino del pacchetto .nuget, ma quando compio in monodevelop ottengo uno strano errore:Webapplication.targets mancante durante la creazione di un progetto MVC4 in MonoDevelop su 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)

Cosa potrebbe significare? Ciò accade anche quando creo semplicemente un nuovo progetto MVC in MonoDevelop e premi build. Qualche idea?

risposta

1

L'implementazione di MSBuild di Mono (xbuild) non ha un'implementazione degli obiettivi per i progetti ASP.NET.

Potrebbe essere possibile creare in MonoDevelop. Assicurati di aver disattivato l'integrazione sperimentale di xbuild nelle preferenze di MonoDevelop.

+0

Se si spegne XBuild/MSBuild non si perde fuori su Nuget pacchetto di ripristino? Devi tornare indietro per ripristinare manualmente i pacchetti giusto? – sumitkm

3

modificare il file da importare csproj v9.0, come così ...

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

Questo non funziona più come MD master insiste nel cambiare la v9.0 alla v10.0 – firegrass

8

creare un collegamento simbolico:

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

ln -s v9.0 v10.0

ho lo stesso ubuntu esatta 12.04 distribuzione su due computer diversi e non poteva capire perché mono compilerebbe su un computer e non l'altro. Ma vabbè, symlink ha risolto il problema.

+0

Creare un link simbolico è probabilmente la soluzione più accurata se devi usare XBuild/MSBuild (che è un bene avere quando vuoi cose come Ripristino pacchetto Nuget). – sumitkm

+1

Questa è una risposta migliore di quella accettata. –

+0

Lo stesso vale per le versioni più recenti di Visual Studio: http://stackoverflow.com/a/35955692/200987 – oligofren

0

So che questa è una vecchia domanda, ma è venuta fuori quando ho cercato su come usare WebApplications.targets su OSX, quindi vale ancora la pena di rispondere. Con l'attuale versione di Mono (5.x), è incluso Webapplication.targets, quindi ora tutto ciò che devi fare è impostare VSToolsPath, e tutto dovrebbe funzionare.

Se si utilizza shell bash di serie, il file .profile è il posto dove metterlo:

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