【问题标题】:How to make Visual Studio compiling a library from JS file?如何使 Visual Studio 从 JS 文件编译库?
【发布时间】:2014-08-26 21:29:41
【问题描述】:

我阅读了this answer,它解释了如何使用 C# 中的 JScript Eval 函数。似乎编译JsMath.js 文件的唯一方法是通过命令行。我想在 Visual Studio 2010 中创建一个 C# 类库项目,并将 JsMath.js 文件放在这个项目中,以便在我构建解决方案时也编译这个文件。

【问题讨论】:

    标签: c# javascript .net visual-studio-2010


    【解决方案1】:

    在 Visual Studio 中将文件标记为嵌入式资源。然后你可以在你的代码中访问它:

    Assembly.GetExecutingAssembly().GetManifestResourceStream("JsMath.js");
    

    然后您可以使用JScriptcodeProvider 将 js 文件动态编译为程序集并通过反射加载它。我不确定这是否比将 JsMath 预先构建为程序集并将其作为参考加载到您的库中更好。

    var compiler = new Microsoft.JScript.JScriptCodeProvider();
    var parameters = new CompilerParameters(new [] {"/t:library"});
    var result = compiler.CompileAssemblyFromSource(parameters, jsMathSource);
    var asembly = result.Assembly;
    //Load the assembly method via reflection
    

    我从这个post得到的编译位

    【讨论】:

    • 好的,但是如果GetManifestResourceStream方法返回一个Stream对象,我怎么能访问JsMath.js文件的Eval方法呢?
    • @enzom83 抱歉,我误读了您链接的问题的答案。我更新了我的答案,但我不确定这是否比将该程序集链接到您的类项目更容易
    猜你喜欢
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-13
    • 1970-01-01
    • 2013-12-30
    • 2020-08-23
    相关资源
    最近更新 更多