2015-01-06 21 views
6

Ho provato a compilare my project con le seguenti istruzioni in modo da ottenere il seguente errore.Come risolvere il problema xbuild ".NETPortable, Version = v4.0, Profile = Profile344" su Linux

La mia sceneggiatura;

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 

Uscita;

Versione XBuild motore 12.0 Mono, versione 3.2.8.0 Copyright (C) 2005-2013 Diversi autori Mono

Costruire iniziato 01/06/2015 18:31:01.


Progetto "/home/ziyasal/gthb/InfluxDB.Net/InfluxDB.Net.sln" (target di default (s)): bersaglio ValidateSolutionConfiguration: configurazione della soluzione Building "Debug | Ogni CPU". Costruire Obiettivo: Progetto "/home/ziyasal/gthb/InfluxDB.Net/InfluxDB.Net/InfluxDB.Net.csproj" (target di default (s)): RestorePackages Target: Esecuzione: mono --runtime = v4. 0.30319 "/home/ziyasal/gthb/InfluxDB.Net/.nuget/NuGet.exe" installa "/home/ziyasal/gthb/InfluxDB.Net/InfluxDB.Net/packages.config" -source "" -RequireConsent -solutionDir "/home/ziyasal/gthb/InfluxDB.Net/" Ripristino di pacchetti NuGet ... Per impedire a NuGet di scaricare pacchetti durante la compilazione, aprire la finestra di dialogo Opzioni di Visual Studio, fare clic sul nodo Gestore pacchetti e deselezionare 'Consenti NuGet da scaricare pacchetti mancanti '. target PrepareForBuild: Configurazione: Debug Piattaforma: AnyCPU creazione della directory "/ Debug/bin" directory creata "obj/debug /" GetReferenceAssemblyPaths target: /usr/lib/mono/xbuild/12.0/bin/Microsoft.Common .targets: avviso: impossibile trovare il framework corrispondente al moniker del framework di destinazione ".NETPortable, Version = v4.0, Profile = Profile344". Embedded Framework embly i riferimenti verranno risolti dal GAC, che potrebbe non essere il comportamento previsto. /usr/lib/mono/xbuild/12.0/bin/Microsoft.Common.targets: errore: assembly di riferimento PCL non installati. Esecuzione task "GetReferenceAssemblyPaths" - FAILED Fine edificio target "GetReferenceAssemblyPaths" nel progetto "/home/ziyasal/gthb/InfluxDB.Net/InfluxDB.Net/InfluxDB.Net.csproj".-- FAILED Progetto di costruzione completato"/home/ziyasal/gthb/InfluxDB.Net/InfluxDB.Net/InfluxDB.Net.csproj ".-- FAILED Esecuzione task" MSBuild "- FAILED Fine edificio target" Build "nel progetto"/home/ziyasal/gthb/InfluxDB.Net/InfluxDB.Net.sln".-- FALLITO Fatto progetto di costruzione "/home/ziyasal/gthb/InfluxDB.Net/InfluxDB.Net.sln".-- FALLITO

generazione non riuscita.

Avvertenze:

/home/ziyasal/gthb/InfluxDB.Net/InfluxDB.Net.sln (target predefinito) -> (costruire target) -> /home/ziyasal/gthb/InfluxDB.Net /InfluxDB.Net/InfluxDB.Net.csproj (target predefiniti) -> /usr/lib/mono/xbuild/12.0/bin/Microsoft.Common.bersagli (target GetReferenceAssemblyPaths) ->

/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 

riferimenti di montaggio il lavoro sarà risolto dal GAC, che potrebbe non essere il comportamento previsto.

Errori:

/home/ziyasal/gthb/InfluxDB.Net/InfluxDB.Net.sln (target predefinito) -> (costruire target) -> /home/ziyasal/gthb/InfluxDB.Net /InfluxDB.Net/InfluxDB.Net.csproj (obiettivi predefiniti) -> /usr/lib/mono/xbuild/12.0/bin/Microsoft.Common.targets (target GetReferenceAssemblyPaths) ->

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

    1 Warning(s) 
    1 Error(s) 

Tempo trascorso 00: 00: 03.8459340

risposta

12

Infine, ho trovato la soluzione (soluzione) per questo. Ho copiato la cartella .NETPortable (C: \ Program (x86) \ Reference Assemblies \ Microsoft \ Framework.NETPortable) dalla mia casella Win a 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 

Compila ora!

+0

Puoi segnalare un bug su https://bugzilla.xamarin.com/ per i referenceassemblies-pcl non installando i profili PCL? Mi sarei aspettato che i referencemblies-pcl installassero tutto il necessario, ma potrei sbagliarmi. –

+0

OK Vedo qual è il problema. Il referenceassemblies-pcl è basato su ciò che Microsoft ha rilasciato e non su ciò che installa Visual Studio (né su quello disponibile con Mono su Mac). Il referenceassemblies-pcl manca il profilo 344 che è il profilo che si sta utilizzando. –

+0

@MattWard Jo ha appena inviato un aggiornamento del pacchetto referenceassemblies-pcl che include Profile344. –

2

Il messaggio di errore indica che non sono stati installati gli assembly di riferimento della libreria di classi portatili.

Vorrei esaminare l'utilizzo di una versione successiva di Mono 3.10 e l'installazione del pacchetto referenceassemblies-pcl. Ci sono istruzioni più dettagliate su Mono website sull'utilizzo di Mono su Linux.

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

+0

Ho installato il pacchetto referenceassemblies-pcl, ma continuo a ricevere un errore. – ziyasal