2015-01-06 13 views
6

Ich habe versucht, my project mit den folgenden Anweisungen kompilieren, damit ich folgenden Fehler erhalten.So lösen Sie xbuild '.NET Portable, Version = v4.0, Profil = Profil344' Problem unter Linux

Mein Skript;

sudo apt-get install mono-complete 
mozroots --import --sync 
mkdir gthb 
cd gthb/ 
git clone https://github.com/ziyasal/InfluxDB.Net.git 
cd InfluxDB.Net/ 
mono .nuget/NuGet.exe install NUnit.Runners 
mono .nuget/NuGet.exe restore InfluxDB.Net.sln 
xbuild 

Ausgabe;

XBuild Motor Version 12.0 Mono, Version 3.2.8.0 Copyright (C) 2005-2013 Verschiedene Mono Autoren

Bau begonnen 01.06.2015 18.31.01.


Projekt "/home/ziyasal/gthb/InfluxDB.Net/InfluxDB.Net.sln" (Standard-Ziel (n)): Ziel ValidateSolutionConfiguration: Gebäudelösungskonfiguration "Debug | Jede CPU". Ziel Körperbau: Projekt "/home/ziyasal/gthb/InfluxDB.Net/InfluxDB.Net/InfluxDB.Net.csproj" (Standard-Ziel (n)): Ziel RestorePackages: Executing: mono --runtime = v4. 0.30319 "/home/ziyasal/gthb/InfluxDB.Net/.nuget/NuGet.exe" install "/home/ziyasal/gth/InfluxDB.Net/InfluxDB.Net/packages.config" -Quelle "" -RequireConsent -solutionDir "/home/ziyasal/gth/InfluxDB.Net/" Wiederherstellen von NuGet-Paketen ... Um zu verhindern, dass NuGet während des Builds Pakete herunterlädt, öffnen Sie das Dialogfeld Visual Studio-Optionen, klicken Sie auf den Package Manager-Knoten und deaktivieren Sie "NuGet herunterladen zulassen fehlende Pakete '. Ziel PrepareForBuild: Konfiguration: Debug Plattform: AnyCPU Erstellt Verzeichnis "bin/Debug /" Erstellt Verzeichnis "obj/Debug /" Ziel GetReferenceAssemblyPaths: /usr/lib/mono/xbuild/12.0/bin/Microsoft.Common .targets: warning: Es konnte kein Framework gefunden werden, das dem Ziel-Framework-Moniker '.NETPortable, Version = v4.0, Profile = Profile344' entspricht. Framework Ass Embly Referenzen werden von der GAC gelöst werden, was nicht das beabsichtigte Verhalten sein kann. /usr/lib/mono/xbuild/12.0/bin/Microsoft.Common.targets: Fehler: PCL Reference Assemblies nicht installiert. Task "GetReferenceAssemblyPaths" -Ausführung - FAILED Geteiltes Build-Ziel "GetReferenceAssemblyPaths" im Projekt "/home/ziyasal/gthb/InfluxDB.Net/InfluxDB.Net/InfluxDB.Net.csproj".-- FEHLGESCHLAGEN Fertig Bauprojekt"/home/ziyasal/gthb/InfluxDB.Net/InfluxDB.Net/InfluxDB.Net.csproj ".-- FAILED Aufgabe" MSBuild "Ausführung - FAILED Fertig Bau Ziel" Build "im Projekt"/home/ziyasal/gthb/InfluxDB.Net/InfluxDB.Net.sln".-- FAILED Projekt Fertig „/home/ziyasal/gthb/InfluxDB.Net/InfluxDB.Net.sln".-- FAILED

Build-FAILED.

Warnungen:

/home/ziyasal/gthb/InfluxDB.Net/InfluxDB.Net.sln (Standardziele) -> (Ziel beim Aufbau) -> /home/ziyasal/gthb/InfluxDB.Net /InfluxDB.Net/InfluxDB.Net.csproj (Standardziele) -> /usr/lib/mono/xbuild/12.0/bin/Microsoft.Common.Ziele (GetReferenceAssemblyPaths Ziel) ->

/usr/lib/mono/xbuild/12.0/bin/Microsoft.Common.targets: warning : Unable to find framework corresponding to the target framework moniker '.NETPortable,Version=v4.0,Profile=Profile344'. Frame 

Arbeit Montag Referenzen wird aus dem GAC gelöst werden, die das gewünschte Verhalten möglicherweise nicht.

Fehler:

/home/ziyasal/gthb/InfluxDB.Net/InfluxDB.Net.sln (Standardziele) -> (Ziel beim Aufbau) -> /home/ziyasal/gthb/InfluxDB.Net /InfluxDB.Net/InfluxDB.Net.csproj (Standardziele) -> /usr/lib/mono/xbuild/12.0/bin/Microsoft.Common.targets (GetReferenceAssemblyPaths Ziel) ->

/usr/lib/mono/xbuild/12.0/bin/Microsoft.Common.targets: error : PCL Reference Assemblies not installed. 

    1 Warning(s) 
    1 Error(s) 

Abgelaufene Zeit 00: 00: 03.8459340

Antwort

12

Schließlich fand ich Lösung (Abhilfe) für diese. Ich kopierte .NET Portable (C: \ Programme (x86) \ Referenz Assemblies \ Microsoft \ Framework.NETPortable) Ordner von meiner Win-Box zu Linux-Box (/usr/lib/mono/xbuild-Frameworks/).

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 
A7E0328081BFF6A14DA29AA6A19B38D3D831EF 

echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee 
/etc/apt/sources.list.d/mono-xamarin.list 

sudo apt-get update 
sudo apt-get install mono-devel 
sudo apt-get install mono-complete 
sudo apt-get install referenceassemblies-pcl 

#Import the root certificates using the mozroots tool 
mozroots --import --sync 

#UPDATE: referenceassemblies-pcl package installs required profiles! 
#####DEPRECATED####### 
#I uploaded .NET Portable folder to temporary place. 
#sudo apt-get install p7zip-full 
#wget https://dl.dropboxusercontent.com/u/33940399/NETPortable.7z 

#Override existing 
#sudo 7z x NETPortable.7z -o/usr/lib/mono/xbuild-frameworks/ -aoa 
#####DEPRECATED####### 
mono .nuget/NuGet.exe restore InfluxDB.Net.sln 

xbuild 

mono packages/NUnit.Runners.2.6.4/tools/nunit-console.exe 
InfluxDB.Net.Tests/bin/Debug/InfluxDB.Net.Tests.dll 

Es kompiliert jetzt gut!

+0

Können Sie einen Fehler auf https://bugzilla.xamarin.com/ für die Referenz-Assemblies-pcl einreichen, ohne die PCL-Profile zu installieren? Ich hätte erwartet, dass die Referenzbaugruppen-pcl alles installieren, was Sie brauchen, aber ich könnte falsch liegen. –

+0

OK Ich sehe was das Problem ist. Der Verweis Assemblies-pcl basiert auf dem, was Microsoft veröffentlicht hat und nicht auf dem, was Visual Studio installiert (und auch nicht, was mit Mono auf dem Mac verfügbar ist). In der Referenzbaugruppe-pcl fehlt das Profil 344, welches das von Ihnen verwendete Profil ist. –

+0

@MattWard Jo hat gerade ein Update des reframeassemblies-pcl-Pakets geposted, das Profile344 enthält. –

2

Die Fehlermeldung zeigt an dass Sie die Referenzklassen der Portable Class Library nicht installiert haben.

Ich würde mit einer späteren Version von Mono 3.10 und Installation der Referenz Assemblies-PCL-Paket suchen. Es gibt detailliertere Anweisungen zum Verwenden von Mono unter Linux unter Mono website.

http://www.mono-project.com/docs/getting-started/install/linux/

+0

Ich habe Referenz-Assemblies-PCL-Paket installiert, aber ich bekomme immer noch Fehler. – ziyasal