Hi i2infinity,
First, we encourage you to build ClearScript yourself via the walkthrough in the ReadMe. That way there'll be no confusion about which libraries to include with your SDK, and you'll get newer and faster versions of ClearScript and V8.
Next, since you wish to bundle the Visual C++ libraries with your SDK rather than install the redistributable packages, you'll have to deal with the platform issue (32-bit vs. 64-bit), as the files for both platforms are named identically.
Here's one way to do it. Have your SDK set up the following directory structure on the target machine:
Of course you can customize this hook to load the libraries from any desired location.
Good luck!
First, we encourage you to build ClearScript yourself via the walkthrough in the ReadMe. That way there'll be no confusion about which libraries to include with your SDK, and you'll get newer and faster versions of ClearScript and V8.
Next, since you wish to bundle the Visual C++ libraries with your SDK rather than install the redistributable packages, you'll have to deal with the platform issue (32-bit vs. 64-bit), as the files for both platforms are named identically.
Here's one way to do it. Have your SDK set up the following directory structure on the target machine:
YourSDK.dll
ClearScript.dll
32\
ClearScriptV8-32.dll
v8-ia32.dll
concrt140.dll
msvcp140.dll
vccorlib140.dll
vcruntime140.dll
64\
ClearScriptV8-64.dll
v8-x64.dll
concrt140.dll
msvcp140.dll
vccorlib140.dll
vcruntime140.dll
The 32-bit and 64-bit versions of the Visual C++ libraries (concrt140.dll, msvcp140.dll, vccorlib140.dll, and vcruntime140.dll) can be found in your Visual C++ installation directory. Some typical paths:C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\redist\x86\Microsoft.VC140.CRT\
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\redist\x64\Microsoft.VC140.CRT\
Finally, to ensure proper loading of the platform-specific ClearScript and V8 libraries, add the following code to your SDK and invoke it before creating your first V8 runtime or engine instance:privatestaticvoid InitClearScript() { AppDomain.CurrentDomain.AssemblyResolve += (sender, args) => { if (args.Name != "ClearScriptV8") returnnull; var path = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); var bits = Environment.Is64BitProcess ? "64" : "32"; return Assembly.LoadFrom(Path.Combine(path, bits, "ClearScriptV8-" + bits + ".dll")); }; }
Good luck!