0

当我将我的应用程序作为服务运行时,我遇到了一个汇编错误。每当我直接从 Visual Studio 启动项目时,都不会发生这种情况。以下是完整的错误信息。似乎错误是这样的:

比较程序集名称导致不匹配:PUBLIC KEY TOKEN

任何人都知道这PUBLIC KEY TOKEN是什么以及如何解决这个问题?

30/01/2017 11:06:41 a.m.: System.IO.FileLoadException: Could not load file or assembly 'ClearScript, Version=5.4.4.0, Culture=neutral, PublicKeyToken=935d0c957da47c73' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)
File name: 'ClearScript, Version=5.4.4.0, Culture=neutral, PublicKeyToken=935d0c957da47c73'
   at System.Reflection.RuntimeAssembly.GetType(RuntimeAssembly assembly, String name, Boolean throwOnError, Boolean ignoreCase, ObjectHandleOnStack type)
   at System.Reflection.RuntimeAssembly.GetType(String name, Boolean throwOnError, Boolean ignoreCase)
   at System.Reflection.Assembly.GetType(String name)
   at Microsoft.ClearScript.V8.V8Proxy.GetImplType(Type type)
   at Microsoft.ClearScript.V8.V8Proxy.CreateImpl[T](Object[] args)
   at Microsoft.ClearScript.V8.V8IsolateProxy.Create(String name, V8RuntimeConstraints constraints, Boolean enableDebugging, Int32 debugPort)
   at Microsoft.ClearScript.V8.V8Runtime..ctor(String name, V8RuntimeConstraints constraints, V8RuntimeFlags flags, Int32 debugPort)
   at Microsoft.ClearScript.V8.V8Runtime..ctor(String name, V8RuntimeConstraints constraints, V8RuntimeFlags flags)
   at Microsoft.ClearScript.V8.V8Runtime..ctor(String name, V8RuntimeConstraints constraints)
   at Microsoft.ClearScript.V8.V8ScriptEngine..ctor(V8Runtime runtime, String name, V8RuntimeConstraints constraints, V8ScriptEngineFlags flags, Int32 debugPort)
   at Microsoft.ClearScript.V8.V8ScriptEngine..ctor(String name, V8RuntimeConstraints constraints, V8ScriptEngineFlags flags, Int32 debugPort)
   at Microsoft.ClearScript.V8.V8ScriptEngine..ctor(V8ScriptEngineFlags flags, Int32 debugPort)
   at Microsoft.ClearScript.V8.V8ScriptEngine..ctor(V8ScriptEngineFlags flags)
   at NinoJS.Core.Main.RunScript(Object filePath)

Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
Running under executable  C:\NinoJS\NinoJS\NinoJS.Service.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: DisplayName = ClearScript, Version=5.4.4.0, Culture=neutral, PublicKeyToken=935d0c957da47c73
 (Fully-specified)
LOG: Appbase = file:///C:/NinoJS/NinoJS/
LOG: Initial PrivatePath = NULL
Calling assembly : ClearScriptV8-32, Version=5.4.4.0, Culture=neutral, PublicKeyToken=935d0c957da47c73.
===
LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\NinoJS\NinoJS\NinoJS.Service.exe.Config
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.
LOG: Post-policy reference: ClearScript, Version=5.4.4.0, Culture=neutral, PublicKeyToken=935d0c957da47c73
LOG: Attempting download of new URL file:///C:/NinoJS/NinoJS/ClearScript.DLL.
WRN: Comparing the assembly name resulted in the mismatch: PUBLIC KEY TOKEN
ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated.
4

1 回答 1

0

从日志中看起来ClearScriptV8-32,链接到该 DLL 的未签名版本,但所有本地版本都已签名。

如果您ClearScriptV8-32自己构建 - 检查是否引用ClearScript指向签名版本,否则请仔细检查ClearScriptV8-32确实引用非签名版本的 ILDasm 并要求所有者提供另一个版本。

有关更多信息,请参阅此论坛主题

于 2017-01-30T14:17:56.793 回答