8

Ich versuche ein Xamarin.iOS-Projekt in Xamarin Studio zu erstellen. Nuget Pakete Wiederherstellung aktiviert ist, aber während eines Build bekomme ich folgende Fehlermeldung:Wiederherstellung von NuGet-Paketen mit Fehlercode 127 beim Erstellen eines Xamarin.iOS-Projekts fehlgeschlagen

/.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)

den gleichen Befehl Ausführen aus dem Terminal keine Probleme gibt und arbeitet absolut in Ordnung mit der folgenden Ausgabe Nachricht:

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 und .nuget/NuGet.targets sind aktuell. Mit der deaktivierten nugget Wiederherstellung am Projekt .csproj Datei Kompilierung funktioniert gut.

Bitte beraten.

Antwort

7

Exit-Code: 127 = "Befehl nicht gefunden"

Hat läuft das wirklich von der Basis Lösung Verzeichnis arbeiten folgende cmd?

mono --runtime=v4.0.30319 "/.nuget/NuGet.exe" install "/ProjectName/packages.config" -source "" -RequireConsent -solutionDir "/" 
  • Mono nicht in der Lage zu sein, die CIL exe zu finden in einem Exit-Code 2 zur Folge haben würde, aber ich gehe davon aus es nicht mono findet richtig ...

Wenn Sie which mono Typen ist es in /usr/local/bin oder /usr/bin gefunden?

Versuchen:

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

und versuchen Sie es erneut von Xamarin Studio.

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

+0

CTPAX-MBP: projectfolder astrakh $, die /usr/local/bin/mono mono | es scheint, dass ich mono 4.0.4 installiert habe, aber ich bin mir nicht sicher, wie man Ziele zu mono 4.0.4 nicht 4.0.3 –

+0

Ich konnte die Version zu verwenden, um zu verwenden, aber es half nicht, der gleiche Fehler. Das Problem besteht darin, dass derselbe Befehl erfolgreich ausgeführt werden konnte, indem Terminal –

+1

die Ausgabe wie folgt ist: ln:/usr/bin/mono: Operation nicht erlaubt –

3

Mit @ RobertN Hilfe ich in der Lage war, den Fehler zu lokalisieren und konfiguriert nuget Build Ziel richtig richtigen Mono zu verwenden. Ich habe den vollständigen Pfad zu Mono angegeben und es funktioniert jetzt.

Waren

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

Jetzt:

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

EDIT1: aber die richtige Art und Weise ist durch Deaktivieren von Systemintegritätsschutz im Recovery-Modus einen Link auf Mono und msc Befehle zu erstellen:

csrutil disable 

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

Dann starten und diese Befehle ausführen:

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