How to solve xbuild '.NETPortable, Version = v4.0, Profile = Profile344' problem on Linux

I tried to compile my project with the following instructions to get the following error.

My script;

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 

Output;

XBuild Version 12.0 Mono, Version 3.2.8.0 Copyright (C) 2005-2013 Various monographers

The assembly began on 06/01/2015 18:31:01.


Project "/home/ziyasal/gthb/InfluxDB.Net/InfluxDB.Net.sln" (default target (s)): Target ValidateSolutionConfiguration: Configuring the building solution "Debugging | Any processor". Target assembly: Project "/home/ziyasal/gthb/InfluxDB.Net/InfluxDB.Net/InfluxDB.Net.csproj" (default target (s)): Target RestorePackages: Execution: mono --runtime = v4.0.30319 "/ home / ziyasal / gthb / InfluxDB.Net / .nuget / NuGet.exe "install" /home/ziyasal/gthb/InfluxDB.Net/InfluxDB.Net/packages.config "-source" -RequireConsent -solutionDir "/ home / ziyasal /gthb/InfluxDB.Net/ "Restoring NuGet packages ... To prevent NuGet from downloading packages during assembly, open the Visual Studio Settings dialog box, click the Package Manager node and uncheck the box" Allow NuGet Download "missing packages." Target PrepareForBuild: Configuration: Debug Platform: AnyCPU Created directory "bin / Debug /" Created directory "obj / Debug /" Target GetReferenceAssemblyPaths: / usr / lib / mono / xbuild / 12.0 / bin / Microsoft.Common.targets: warning: Not unable to find the framework matching the moniker target file '.NETPortable, Version = v4.0, Profile = Profile344'. Link frames will be resolved with the GAC, which may not be the intended behavior. / usr / lib / mono / xbuild / 12.0 / bin / Microsoft.Common.targets: error: PCL Reference Assemblies not installed. Execution of the GetReferenceAssemblyPaths task - FAILED The GetReferenceAssemblyPaths target is created in the project /home/ziyasal/gthb/InfluxDB.Net/InfluxDB.Net/InfluxDB.Net.csproj..-- FAILED Ready building project / home / ziyasal / gthb /InfluxDB.Net/InfluxDB.Net/InfluxDB.Net.csproj".-- FAILED Execution of the "MSBuild" task - FAILED The purpose of building the "Assembly" in the project "/home/ziyasal/gthb/InfluxDB.Net/InfluxDB.Net. sln ".-- FAILED Complete building project" /home/ziyasal/gthb/InfluxDB.Net/InfluxDB.Net.sln".-- FAILED

Assembly FAILED.

Warnings:

/home/ziyasal/gthb/InfluxDB.Net/InfluxDB.Net.sln (default goals) β†’ (Create goal) β†’ /home/ziyasal/gthb/InfluxDB.Net/InfluxDB.Net/InfluxDB.Net.csproj(goals default) β†’ / usr / lib / mono / xbuild / 12.0 / bin / Microsoft.Common.targets (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 

assembly references will be resolved using the GAC, which may not be the intended behavior.

Errors:

/home/ziyasal/gthb/InfluxDB.Net/InfluxDB.Net.sln (default goals) β†’ (Create goal) β†’ /home/ziyasal/gthb/InfluxDB.Net/InfluxDB.Net/InfluxDB.Net.csproj(goals default) β†’ / 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) 

Elapsed time 00: 00: 03.8459340

+6
source share
2 answers

Finally, I found a solution (workaround) for this. I copied the .NETPortable folder ( C: \ Program Files (x86) \ Reference Assemblies \ Microsoft \ Framework.NETPortable ) from the Win box on Linux ( / 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 

Now it compiles!

+12
source

The error message indicates that you do not have collections of references to the library of portable classes.

I would look at a later version of Mono 3.10 and install the referenceassemblies-pcl package. More detailed instructions on the Mono site about using Mono on Linux.

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

+2
source

Source: https://habr.com/ru/post/980613/


All Articles