如何正确调用IL2JS?

时间:2012-11-07 16:08:28

标签: c#

我看到微软开源IL2JS,这似乎是通过编译IL将Silverlight应用程序编译为纯JavaScript的工具。

然而,我似乎无法让它发挥作用。我跑的时候:

  

PS C:\ source \ IL2JS-master \ bin> ./il2jsr -rewrite C:\ FlatRedBallProjects \ Test1 \ Te   st1 \ Test1 \ Bin \ Debug \ Test1.dll -out test.js -reference。\ IL2JS_mscorlib.dll

当我跑步时,我得到了

  

错误3003:没有程序集名称类似于特殊的“JSTypes”程序集   1个错误,0个警告

所以我尝试为jstypes添加另一个-reference选项并得到以下输出:

  

PS C:\ source \ IL2JS-master \ bin> ./il2jsr -rewrite C:\ FlatRedBallProjects \ Test1 \ Test1 \ Test1 \ Bin \ Debug \ Test1.dll -out test.js -reference。\ IL2JS_mscorlib.dll -reference。\ IL2JS_JSTypes_silverlight.dll

     

错误3005:无法从文件'C:\ source \ IL2JS-master \ bin'加载程序集:无法加载mscorlib   1个错误,0个警告

所以看起来你只能有一个-reference选项,但你需要以某种方式引用jstypes和mscorlib程序集。

我做错了什么?

<小时/> 修改的: 所以经过一些调试后,似乎正确的方法是使用2参考参数。后者不起作用的原因是

        CCI.SystemTypes.Initialize(false, true, ResolveReference);

        // ----------------------------------------
        // Account for mscorlib being loaded
        // ----------------------------------------
        mscorlib = CCI.SystemTypes.SystemAssembly;
        if (mscorlib == null || mscorlib.Directory == null)

AssemblyLoader.cs。最后一个if语句失败(mscorlib.Directory为null)。现在问题是为什么......

1 个答案:

答案 0 :(得分:0)

根据https://github.com/Reactive-Extensions/IL2JS/blob/master/HOW_TO_BUILD.txt,您需要设置IL2JSROOT环境变量

“或注册设置      HKEY_LOCAL_MACHINE \ SOFTWARE \微软\ IL2JS @根    被设置为。上面的powershell设置为您设置此变量。如果你希望    要在其他地方使用解决方案或项目,请自行设置此变量。“

试试看,它可能会有所帮助。