toneman77 0 Posted December 23, 2016 Posted December 23, 2016 Hey guys. When trying to build emby-server in a docker container, the following worked untill 3.0.8500: sudo apt-get install -y --no-install-recommends \ ca-certificates \ git \ libmono-system-core4.0-cil \ mono-devel \ mono-runtime \ mono-utils \ mono-xbuild \ wget cd $HOME \ && git clone --depth 1 https://github.com/MediaBrowser/Emby.git I then change to Tools/Linux_Build_Scripts/ and launch MediaBrowser.Mono.Build.sh But since 3.1.1 (I must have missed 3.1.0) I get: ... ======================================== Requirements ======================================== Check if folder mediabrowser exist Creating folder: mediabrowser ======================================== Nuget: Restoring packages ======================================== Restoring NuGet package MSBuild auto-detection: using msbuild version '4.0' from '/usr/lib/mono/4.5'. MsBuild.exe does not exist at '/usr/lib/mono/4.5/msbuild.exe'. Result is the same, no matter if I use a debian docker or ubuntu. What did I do wrong? Anything I am missing here?
Luke 40079 Posted December 23, 2016 Posted December 23, 2016 Hi, why not just follow the Docker instructions from the website?
toneman77 0 Posted December 23, 2016 Author Posted December 23, 2016 Hi. you mean this: https://github.com/MediaBrowser/Wiki/wiki/Docker-Getting-Started ? That only builds a docker container with an already installed emby in it. I like building stuff and mostly for the sake of learning, that's why I build some packages myself.
Luke 40079 Posted December 23, 2016 Posted December 23, 2016 I see. Make sure you have mono 4.6. You will need that in order to build now.
toneman77 0 Posted December 24, 2016 Author Posted December 24, 2016 I adjusted the instructions at github and used 4.6.2 as the version. Installed all the prerequisites. Sadly, still the same error. I then searched around more and found this error stating that the wrong version of nuget ignores the correct path to xbuild and looks for msbuild.exe. This issue is fixed if I understood everything correctly with nuget 3.5 upstream. So I downloaded the current release from here and placed it in the NuGet folder. And now I get this error: ======================================== Requirements ======================================== Check if folder mediabrowser exist mediabrowser exist, checking for old binaries folder ======================================== Nuget: Restoring packages ======================================== Restoring NuGet package MSBuild auto-detection: using msbuild version '14.0' from '/usr/lib/mono/xbuild/14.0/bin'. MSBUILD: error MSBUILD0005: Invalid syntax. Property name and value expected as <prop name>=[<prop value>] Ok, well. The line in the MediaBrowser.Mono.Build.sh script that triggers the error is: mono Nuget/nuget.exe restore MediaBrowser.Mono.sln So i searched around and found out that nuget can be more verbose, so I changed into the main Emby folder and executed: (also tried to add verbosity in the script itself. result is the same) ~/Emby# mono Nuget/nuget.exe restore MediaBrowser.Mono.sln -Verbosity detailed and the result was: NuGet Version: 3.5.0.1938 MSBuild auto-detection: using msbuild version '14.0' from '/usr/lib/mono/xbuild/14.0/bin'. Use option -MSBuildVersion to force nuget to use a specific version of MSBuild. MSBuild P2P timeout [ms]: 120000 MSBUILD: error MSBUILD0005: Invalid syntax. Property name and value expected as <prop name>=[<prop value>] System.AggregateException: One or more errors occurred. ---> NuGet.CommandLine.CommandLineException at NuGet.CommandLine.MsBuildUtility.GetProjectReferences (System.String msbuildDirectory, System.String[] projectPaths, System.Int32 timeOut) [0x0023a] in <eca5fa3af2c04391bafa6fe58e194074>:0 at NuGet.CommandLine.RestoreCommand.DetermineRestoreInputs () [0x00114] in <eca5fa3af2c04391bafa6fe58e194074>:0 at NuGet.CommandLine.RestoreCommand+<ExecuteCommandAsync>d__22.MoveNext () [0x000c5] in <eca5fa3af2c04391bafa6fe58e194074>:0 --- End of inner exception stack trace --- at System.Threading.Tasks.Task.ThrowIfExceptional (System.Boolean includeTaskCanceledExceptions) [0x00014] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Threading.Tasks.Task.Wait (System.Int32 millisecondsTimeout, System.Threading.CancellationToken cancellationToken) [0x00052] in <8f2c484307284b51944a1a13a14c0266>:0 at System.Threading.Tasks.Task.Wait () [0x00000] in <8f2c484307284b51944a1a13a14c0266>:0 at NuGet.CommandLine.Command.Execute () [0x000bd] in <eca5fa3af2c04391bafa6fe58e194074>:0 at NuGet.CommandLine.Program.MainCore (System.String workingDirectory, System.String[] args) [0x001f8] in <eca5fa3af2c04391bafa6fe58e194074>:0 ---> (Inner Exception #0) NuGet.CommandLine.CommandLineException at NuGet.CommandLine.MsBuildUtility.GetProjectReferences (System.String msbuildDirectory, System.String[] projectPaths, System.Int32 timeOut) [0x0023a] in <eca5fa3af2c04391bafa6fe58e194074>:0 at NuGet.CommandLine.RestoreCommand.DetermineRestoreInputs () [0x00114] in <eca5fa3af2c04391bafa6fe58e194074>:0 at NuGet.CommandLine.RestoreCommand+<ExecuteCommandAsync>d__22.MoveNext () [0x000c5] in <eca5fa3af2c04391bafa6fe58e194074>:0 <--- And now after 2h of searching, I'm lost...
scr09 2 Posted December 25, 2016 Posted December 25, 2016 I have the same error trying to build Emby with the same instructions on Ubuntu (not for docker). mono is at version 4.6.2. 1
Solution scr09 2 Posted December 25, 2016 Solution Posted December 25, 2016 I fixed my error and successfully compiled by commenting this in the build script #mono Nuget/nuget.exe restore MediaBrowser.Mono.sln and installing referenceassemblies-pcl apt-get install referenceassemblies-pcl 1
toneman77 0 Posted December 25, 2016 Author Posted December 25, 2016 (edited) Well at first I had some major problems because I build on debian, but run on alpine linux. Then I changed to tklx (smaller debian) but that didn't work out either. After using debian:wheezy in my Dockerfile, everything ran. Thanks a lot. The one thing I had to do manually is make a symbolic link: ln -s /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 /usr/lib/libsqlite3.so or else emby crashed on start. @scr09: did your build run without manual intervention? Out of interest: What does "...nuget restore..." and why is it not neccesary? @scr09: you are my hero (emby devs/admins are heroes anyways) @Luke: Somebody should update the instructions @github, in case someone else tries to build versions higher than 3.0.xxxx Thanks a lot guys Edited December 26, 2016 by toneman77
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now