-
Notifications
You must be signed in to change notification settings - Fork 459
Building CSCore
Erhie edited this page Oct 17, 2017
·
4 revisions
- Clone the repository using
git clone https://github.com/filoe/cscore.git
- Open up the CSCore solution file(CSCore.sln) in Visual Studio. Minimum required Visual Studio version is VS 2008 express).
- Make sure that the CSCli, InlineILCompiler and of course CSCore project got loaded successfully.
- Build the CSCore project
- The following steps will be done by the build process:
- The CSCore assembly will be compiled by your C# compiler
- The InlineILCompiler tool will patch the built CSCore.dll and will replace all the InlineIL code with the actual IL instructions.
- The CSCli tool will patch the CSCore.dll in order to add all the COM object calls.
- If this step does not run propertly, the process will throw a
NotImplementedException
- as soon as any COM object will be used.
- Possibly with Visual Studio Community 2017 it is necessary to add the
- package source https://www.nuget.org/api/v2/ in settings of NuGet in Visual Studio
- and it is necessary to install the packages Mono.Cecil and NVorbis with the
- package manager (Visual Studio->Tools->NuGet Package Manager->Manage NuGet Packages for Solution...
- After error free building of the projects Tools->CSCli and Samples->NVorbisIntegration should be error free.
- With Windows 10 and Mono.Cecil v0.9.6.4 there are problems to build CSCore, because the
- Post-build event commands execute CSCli exe with failure, because the file CSCore.dll is blocked.
- By patching Tools\CSCli\Program.cs , that after "if (!File.Exists(filename))"
- CSCore.dll is renamed e.g. with
- string origfilename = filename + "_orig"; File.Delete(origfilename); File.Move(filename, origfilename);
- and by patching this line: var assembly = AssemblyDefinition.ReadAssembly(origfilename, rp);
- and in if (patcher.PatchAssembly()) {} remove the line File.Delete(filename);