Skip to content

Commit a166a9a

Browse files
committed
In JavaScriptEngineSwitcher.V8 fixed a error #73 “Trying to Run this in the GAC”
1 parent 1955de5 commit a166a9a

File tree

5 files changed

+23
-10
lines changed

5 files changed

+23
-10
lines changed

Diff for: src/JavaScriptEngineSwitcher.V8/AssemblyResolver.cs

+17-4
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
using System.IO;
33
using System.Reflection;
44

5+
using Microsoft.ClearScript.V8;
6+
57
using JavaScriptEngineSwitcher.V8.Constants;
68

79
namespace JavaScriptEngineSwitcher.V8
@@ -45,17 +47,28 @@ private static Assembly AssemblyResolveHandler(object sender, ResolveEventArgs a
4547
platformBitness = 32;
4648
}
4749

50+
string assemblyName = DllName.ClearScriptV8Universal + "-" + platformBitness;
4851
string assemblyDirectoryPath = Path.Combine(baseDirectoryPath, platformName);
49-
string assemblyFileName = DllName.ClearScriptV8Universal + "-" + platformBitness + ".dll";
52+
string assemblyFileName = assemblyName + ".dll";
5053
string assemblyFilePath = Path.Combine(assemblyDirectoryPath, assemblyFileName);
5154
bool assemblyFileExists = File.Exists(assemblyFilePath);
5255

53-
if (!assemblyFileExists)
56+
if (assemblyFileExists)
5457
{
55-
return null;
58+
return Assembly.LoadFile(assemblyFilePath);
5659
}
5760

58-
return Assembly.LoadFile(assemblyFilePath);
61+
Assembly clearScriptAssembly = typeof(V8ScriptEngine).Assembly;
62+
string clearScriptAssemblyFullName = clearScriptAssembly.FullName;
63+
int commaPosition = clearScriptAssemblyFullName.IndexOf(',');
64+
65+
if (commaPosition != -1)
66+
{
67+
string assemblyFullName = assemblyName +
68+
clearScriptAssemblyFullName.Substring(commaPosition);
69+
70+
return Assembly.Load(assemblyFullName);
71+
}
5972
}
6073

6174
return null;

Diff for: src/JavaScriptEngineSwitcher.V8/Constants/DllName.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
internal static class DllName
77
{
88
public const string ClearScriptV8Universal = "ClearScriptV8";
9-
public const string V8Base32Bit = "v8-base-ia32.dll";
10-
public const string V8Base64Bit = "v8-base-x64.dll";
9+
public const string V8LibCpp32Bit = "v8-libcpp-ia32.dll";
10+
public const string V8LibCpp64Bit = "v8-libcpp-x64.dll";
1111
}
1212
}

Diff for: src/JavaScriptEngineSwitcher.V8/JavaScriptEngineSwitcher.V8.csproj

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ This package does not contain the native ClearScript and V8 assemblies. Therefor
1717
* JavaScriptEngineSwitcher.V8.Native.win-x64</Description>
1818
<PackageIconUrl>https://raw.githubusercontent.com/Taritsyn/JavaScriptEngineSwitcher/master/Icons/JavaScriptEngineSwitcher_V8_Logo128x128.png</PackageIconUrl>
1919
<PackageTags>JavaScriptEngineSwitcher;JavaScript;ECMAScript;V8;ClearScript</PackageTags>
20-
<PackageReleaseNotes>Microsoft ClearScript.V8 was updated to version 5.6.0.</PackageReleaseNotes>
20+
<PackageReleaseNotes>Fixed a error #73 “Trying to Run this in the GAC”.</PackageReleaseNotes>
2121
</PropertyGroup>
2222

2323
<Import Project="../../build/common.props" />

Diff for: src/JavaScriptEngineSwitcher.V8/V8JsEngine.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -367,10 +367,10 @@ private static WrapperEngineLoadException WrapTypeLoadException(
367367
StringBuilder descriptionBuilder = stringBuilderPool.Rent();
368368
descriptionBuilder.AppendFormat(CoreStrings.Engine_AssemblyNotFound, assemblyFileName);
369369
descriptionBuilder.Append(" ");
370-
if (assemblyFileName == DllName.V8Base64Bit || assemblyFileName == DllName.V8Base32Bit)
370+
if (assemblyFileName == DllName.V8LibCpp64Bit || assemblyFileName == DllName.V8LibCpp32Bit)
371371
{
372372
descriptionBuilder.AppendFormat(CoreStrings.Engine_NuGetPackageInstallationRequired,
373-
assemblyFileName == DllName.V8Base64Bit ?
373+
assemblyFileName == DllName.V8LibCpp64Bit ?
374374
"JavaScriptEngineSwitcher.V8.Native.win-x64"
375375
:
376376
"JavaScriptEngineSwitcher.V8.Native.win-x86"

Diff for: src/JavaScriptEngineSwitcher.V8/readme.txt

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
=============
2626
RELEASE NOTES
2727
=============
28-
Microsoft ClearScript.V8 was updated to version 5.6.0.
28+
Fixed a error #73 “Trying to Run this in the GAC”.
2929

3030
=============
3131
DOCUMENTATION

0 commit comments

Comments
 (0)