8

Sto provando a creare un progetto Xamarin.iOS in Xamarin Studio. Nuget pacchetti di restauro è abilitata ma durante qualsiasi accumulo ottengo il seguente errore:Il ripristino dei pacchetti NuGet non è riuscito con il codice di errore 127 durante la creazione di un progetto Xamarin.iOS

/.nuget/NuGet.targets: Error: Command 'mono --runtime=v4.0.30319 "/.nuget/NuGet.exe" install "/ProjectName/packages.config" -source "" -RequireConsent -solutionDir "/" exited with code: 127. (ProjectName)

esecuzione lo stesso comando dal terminale non dà problemi e funziona assolutamente bene con il seguente messaggio di output:

Restoring NuGet packages... To prevent NuGet from downloading packages during build, open the Visual Studio Options dialog, click on the Package Manager node and uncheck 'Allow NuGet to download missing packages'.

. nuget/NuGet.exe e .nuget/NuGet.targets sono aggiornati. Con il ripristino nuget disabilitato nel progetto, la compilazione del file .csproj funziona perfettamente.

Si prega di avvisare.

risposta

7
codice

Exit: 127 = "command not found"

Vuol esecuzione che segue cmd funzionano veramente dalla base di directory soluzione?

mono --runtime=v4.0.30319 "/.nuget/NuGet.exe" install "/ProjectName/packages.config" -source "" -RequireConsent -solutionDir "/" 
  • Mono non essere in grado di trovare il file exe CIL si tradurrebbe in un codice di uscita 2, ma io parto dal presupposto che non sta trovando correttamente mono ...

Se si digita which mono si trova in /usr/local/bin o /usr/bin?

Prova:

sudo ln /Library/Frameworks/Mono.framework/Commands/mono /usr/bin 

e riprovare da Xamarin Studio.

Rif: https://forums.xamarin.com/discussion/43192/os-x-10-11-el-capitan-beta-and-xamarin-compiler-error-127

+0

CTPAX-MBP: projectfolder astrakh $ che mono /usr/local/bin/mono | sembra che ho installato mono 4.0.4 ma non sono sicuro di come forzare i target ad usare mono 4.0.4 non 4.0.3 –

+0

Sono stato in grado di modificare la versione da usare ma non ha aiutato, lo stesso errore. Il problema è che lo stesso comando potrebbe essere eseguito correttamente tramite il terminale –

+1

l'uscita è la seguente: ln:/usr/bin/mono: operazione non consentita –

3

Con l'aiuto di @ RobertN sono stato in grado di individuare l'errore e l'obiettivo di costruire NuGet configurato correttamente per l'utilizzo corretto mono. Ho specificato il percorso completo per mono e ora funziona.

Was:

<NuGetCommand Condition=" '$(OS)' != 'Windows_NT' ">mono --runtime=v4.0.30319 "$(NuGetExePath)"</NuGetCommand> 

Ora:

<NuGetCommand Condition=" '$(OS)' != 'Windows_NT' ">/Library/Frameworks/Mono.framework/Versions/Current/bin/mono --runtime=v4.0 "$(NuGetExePath)"</NuGetCommand> 

Edit1: ma il modo più corretto è quello di creare un collegamento a mono e comandi MSC disabilitando Protection System Integrity in modalità di recupero:

csrutil disable 

http://forums.xamarin.com/discussion/43192/os-x-10-11-el-capitan-beta-and-xamarin-compiler-error-127#latest

Quindi riavviare ed eseguire questi comandi:

sudo ln /Library/Frameworks/Mono.framework/Commands/mcs /usr/bin/ 
sudo ln /Library/Frameworks/Mono.framework/Commands/mono /usr/bin/ 
Problemi correlati