我对 ClearScript 有疑问。当我从常规项目(类库或 wpf)中使用它们时,当通过 nuget 添加依赖项时,还会添加一个后期构建脚本,将 、 和 复制ClearScriptV8-32.dll
到ClearScriptV8-64.dll
目录v8-ia32.dll
并且v8-x64.dll
一切bin
正常。但是当我尝试在新的 ASP.NET 中使用这个库时,事情就出错了。
用于 dnx 的 Nuget ClearScript 包下载到
C:\Users\lukasz\.dnx\packages\ClearScript.V8\5.4.3\lib\net40
我的意思是,ClearScript.dll
是否存在但其他 4 个文件不存在(它们存在..\..\tools\native\{x86,amd64}\*
,就像桌面应用程序一样),当我运行应用程序时它说
System.IO.FileNotFoundException: Cannot find file 'C:\Users\lukasz\.dnx\packages\ClearScript.V8\5.4.3\lib\net40\ClearScriptV8-32.dll'
因此,根据我在常规项目中的经验,我只是从
.dnx\packages\ClearScript.V8\5.4.3\tools\native\{x86,amd64}\*
至
.dnx\packages\ClearScript.V8\5.4.3\lib\net40
然后我得到这个错误
Error: error CS0009: Metadata file 'C:\Users\lukasz\.dnx\packages\ClearScript.V8\5.4.3\lib\net40\v8-x64.dll' could not be opened -- PE image doesn't contain managed metadata.
error CS0009: Metadata file 'C:\Users\lukasz\.dnx\packages\ClearScript.V8\5.4.3\lib\net40\v8-ia32.dll' could not be opened -- PE image doesn't contain managed metadata.
我会假设这些 dll 在某种程度上对 web 版本无效,也许我需要以某种不同的方式获取这些 dll?
我可以重现从 WebApi 模板创建新 ASP.NET 5 项目的问题。我使用单一框架dnx46
,不core
,因为我使用的项目无论如何都不是针对它编译的。我用ClearScript.V8 5.4.3
. DNX SDK 版本为1.0.0-rc1-update1
.
我只是在创造
var engine = new V8ScriptEngine();
在控制器方法中。