将 TypeScript 编译器加载到 ClearScript 中,“WScript 未定义”,不可能完成的任务?

2023-11-25

我尝试使用清晰脚本加载打字稿编译器来编译一些基本的 TypeScript 代码。

不幸的是,当执行 TypeScript 编译器源代码时,我收到此错误:

“WScript”未定义

这是LINQPad我使用过的程序,放置 ClearScript dll 和TypeScript 编译器文件与 .linq 程序一起:

void Main()
{
    using (var js = new Microsoft.ClearScript.Windows.JScriptEngine(Microsoft.ClearScript.Windows.WindowsScriptEngineFlags.DisableSourceManagement))
    {
        var typeScriptSource = File.ReadAllText(Path.Combine(Path.GetDirectoryName(Util.CurrentQueryPath), "tsc.js"));
        js.Execute(typeScriptSource);
        const string typeScriptCode = @"
            class Greeter {
                greeting: string;
                constructor(message: string) {
                    this.greeting = message;
                }
                greet() {
                    return ""Hello, "" + this.greeting;
                }
            }
            function test()
            {
                var greeter = Greeter(""world"");
                return greeter.greet();
            }
        ";
        js.Script.TypeScript.Compile(typeScriptCode);

        object result = js.Script.test();
        result.Dump();
    }
}

#region Copy ClearScript to correct location

static UserQuery()
{
    foreach (var filename in new[] { "ClearScriptV8-32.dll", "ClearScriptV8-64.dll", "v8-ia32.dll", "v8-x64.dll" })
    {
        try
        {
            string sourcePath = Path.Combine(Path.GetDirectoryName(Util.CurrentQueryPath), filename);
            string targetPath = Path.Combine(Path.GetDirectoryName(typeof(Util).Assembly.Location), filename);

            File.Copy(sourcePath, targetPath, true);
        }
        catch (IOException ex)
        {
            unchecked
            {
                const int fileInUseHresult = (int)0x80070020;
                if (ex.HResult != fileInUseHresult)
                    throw;
            }
        }
    }
}

#endregion

错误发生在这一行:

js.Execute(typeScriptSource);

我已经创建了一个 .zip 文件,其中包含您需要的所有内容LINQPad加载 .linq 文件并进行实验。 ClearScript dll 是从未经修改的源代码创建的,但如果您不相信我,您应该能够自己复制这些(如果您没有它们的话)。

它可以在这里找到:SO19023498.zip 的 Dropbox 链接.

我尝试过的:

  1. 我首先尝试执行这段代码:

    var WScript = new ActiveXObject("WSH.WScript");
    

    这只会产生这个错误:Automation server can't create object

    我没有看到WSH.WScript在注册表中的 HKEY_CLASSES_ROOT 下,所以可能就是这样。

  2. 我尝试弄清楚如何从 .NET 创建对象并将其设置到脚本上下文中,但显然我没有找到正确的位置。


4 年后,使用 TypeScript 2.7 服务https://rawgit.com/Microsoft/TypeScript/master/lib/typescriptServices.js现在有点两行:

  • 使用此脚本初始化您最喜欢的 JS 引擎
  • 加载 *.ts 资源的字符串内容
  • 获取函数引用ts.transpile
  • 将类型脚本作为字符串提供给它,并返回一个带有转译源的字符串

使用例如清晰脚本engine在 C# 中,字符串中包含 ITS 源代码src这将是:

dynamic transpile = engine.Evaluate("ts.transpile");
var js = transpile(src);
// now feed the string js into a different JS engine
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 TypeScript 编译器加载到 ClearScript 中,“WScript 未定义”,不可能完成的任务? 的相关文章

  • 提交后禁用按钮

    当用户提交付款表单并且发布表单的代码导致 Firefox 中出现重复发布时 我试图禁用按钮 去掉代码就不会出现这个问题 在firefox以外的任何浏览器中也不会出现这个问题 知道如何防止双重帖子吗 System Text StringBui
  • C中的malloc内存分配方案

    我在 C 中尝试使用 malloc 发现 malloc 在分配了一些内存后浪费了一些空间 下面是我用来测试 malloc 的一段代码 include
  • 复制目录内容

    我想将目录 tmp1 的内容复制到另一个目录 tmp2 tmp1 可能包含文件和其他目录 我想使用C C 复制tmp1的内容 包括模式 如果 tmp1 包含目录树 我想递归复制它们 最简单的解决方案是什么 我找到了一个解决方案来打开目录并读
  • 如何创建包含 IPv4 地址的文本框? [复制]

    这个问题在这里已经有答案了 如何制作一个这样的文本框 我想所有的用户都见过这个并且知道它的功能 您可以使用带有 Mask 的 MaskedTestBox000 000 000 000 欲了解更多信息 请参阅文档 http msdn micr
  • java.io.Serialized 在 C/C++ 中的等价物是什么?

    C C 的等价物是什么java io Serialized https docs oracle com javase 7 docs api java io Serializable html 有对序列化库的引用 用 C 序列化数据结构 ht
  • 如何使用 LINQ2SQL 连接两个不同上下文的表?

    我的应用程序中有 2 个数据上下文 不同的数据库 并且需要能够通过上下文 B 中的表的右连接来查询上下文 A 中的表 我该如何在 LINQ2SQL 中执行此操作 Why 我们正在使用 SaaS 产品来跟踪我们的时间 项目等 并希望向该产品发
  • 在 Visual Studio 2010 中从 Fortran 调用 C++ 函数

    我想从 Fortran 调用 C 函数 为此 我在 Visual Studio 2010 中创建了一个 FORTRAN 项目 之后 我将一个 Cpp 项目添加到该 FORTRAN 项目中 当我要构建程序时出现以下错误 Error 1 unr
  • 是否有实用的理由使用“if (0 == p)”而不是“if (!p)”?

    我倾向于使用逻辑非运算符来编写 if 语句 if p some code 我周围的一些人倾向于使用显式比较 因此代码如下所示 if FOO p some code 其中 FOO 是其中之一false FALSE 0 0 0 NULL etc
  • 标准化 UTF-8 到底是什么?

    The 重症监护室项目 http userguide icu project org transforms normalization 现在也有一个PHP库 http us php net manual en class normalize
  • 如何检测表单的任何控件的变化?

    如何检测 C 中表单的任何控件的更改 由于我在一个表单上有许多控件 并且如果表单中的任何控件值发生更改 我需要禁用按钮 我正在寻找一些内置函数 事件处理程序 属性 并且不想为此创建自定义函数 不 我不知道任何时候都会触发任何事件any控制表
  • Qt - ubuntu中的串口名称

    我在 Ubuntu 上查找串行端口名称时遇到问题 如您所知 为了在 Windows 上读取串口 我们可以使用以下代码 serial gt setPortName com3 但是当我在 Ubuntu 上编译这段代码时 我无法使用这段代码 se
  • 如何在 Xaml 文本中添加电子邮件链接?

    我在 Windows Phone 8 应用程序中有一些大文本 我希望其中有电子邮件链接 例如 mailto 功能 这是代码的一部分
  • 等待进程释放文件

    我如何等待文件空闲以便ss Save 可以用新的覆盖它吗 如果我紧密地运行两次 左右 我会得到一个generic GDI error
  • 动态添加 ASP.Net 控件

    我有一个存储过程 它根据数据库中存储的记录数返回多行 现在我想有一种方法来创建 div 带有包含该行值的控件的标记 如果从数据库返回 10 行 则 10 div 必须创建标签 我有下面的代码来从数据库中获取结果 但我不知道如何从这里继续 S
  • 如何在非控制台应用程序中查看 cout 输出?

    输出到调试窗口似乎相当繁琐 我在哪里可以找到cout如果我正在编写非控制台信息 则输出 Like double i a b cout lt lt b lt lt endl I want to check out whether b is z
  • 使用 %d 打印 unsigned long long

    为什么我打印以下内容时得到 1 unsigned long long int largestIntegerInC 18446744073709551615LL printf largestIntegerInC d n largestInte
  • C++ 函数重载类似转换

    我收到一个错误 指出两个重载具有相似的转换 我尝试了太多的事情 但没有任何帮助 这是那段代码 CString GetInput int numberOfInput BOOL clearBuffer FALSE UINT timeout IN
  • 方法优化 - C#

    我开发了一种方法 允许我通过参数传入表 字符串 列数组 字符串 和值数组 对象 然后使用这些参数创建参数化查询 虽然它工作得很好 但代码的长度以及多个 for 循环散发出一种代码味道 特别是我觉得我用来在列和值之间插入逗号的方法可以用不同的
  • 从 Excel 应用程序对象中查找位数(32 位/64 位)?

    是否可以从 Microsoft Office Interop Excel ApplicationClass 确定 Excel 是以 32 位还是 64 位运行 Edit该解决方案应该适用于 Excel 2010 和 Excel 2007 此
  • Oracle Data Provider for .NET 不支持 Oracle 19.0.48.0.0

    我们刚刚升级到 Oracle 19c 19 3 0 所有应用程序都停止工作并出现以下错误消息 Oracle Data Provider for NET 不支持 Oracle 19 0 48 0 0 我将 Oracle ManagedData

随机推荐

  • 环境不一致,请仔细查看套餐方案

    我尝试从 anaconda 更新或安装新软件包 最近出现了此消息 The environment is inconsistent please check the package plan carefully The following p
  • 检查属性是否有属性

    给定类中具有属性的属性 确定它是否包含给定属性的最快方法是什么 例如 IsNotNullable IsPK IsIdentity SequenceNameAttribute Id public Int32 Id get return Id
  • 我想我可以通过 Javascript 检测浏览器本身内部的 Tor 浏览器吗?

    如果浏览器是 Tor 浏览器 我想禁用我正在构建的网络应用程序的某些功能 我可以在浏览器本身 客户端 而不是服务器端 内部查明浏览器是否是 Tor 浏览器 我更喜欢一个不发出任何 HTTP 请求来将浏览器的 IP 与 Tor 出口节点进行匹
  • 使用 javascript 和 PhoneGap 的 HTML5 移动应用本地化

    我正在创建一个在所有 3 个移动平台 Android iOS 和 Windows Mobile 8 上运行的 HTML5 移动应用程序 我正在使用 javascript 进行本地化 https github com eligrey l10n
  • 如何在 Swift 中显示来自另一个类的警报?

    我有一个主课 AddFriendsController 运行以下代码行 ErrorReporting showMessage Error msg Could not add student to storage 然后我有这个ErrorRep
  • 从 python 中的列表中获取唯一值[重复]

    这个问题在这里已经有答案了 我想从以下列表中获取唯一值 nowplaying PBS PBS nowplaying job debate thenandnow 我需要的输出是 nowplaying PBS job debate thenan
  • 在python中通过调制解调器发送wav声音

    我正在尝试用 python 和 linux 制作一个自动应答和呼叫机 但到目前为止我只能拨打一个号码 当谈到发送声音或录制声音时 我没有成功 过去一周我一直在努力解决这个问题 到目前为止还找不到解决的方法 我使用的调制解调器是 Conexa
  • 可以嵌套
    吗?

    在 asp net 网页的内容页中 我想包含 paypal 按钮 立即付款 所以 我有一个母版页和一个内容页 在我的内容页面中 我复制粘贴贝宝代码 特别是 我使用 modalpopupextender 来允许我的用户购买该对象 问题是 它不
  • 了解 JAX-WS 中的 @Oneway 注释

    根据 javadoc 指示给定的 WebMethod 只有输入消息而没有输出 通常 单向方法在执行实际业务方法之前将控制线程返回给调用应用程序 如果标记为 Oneway 的操作具有返回值或 Holder 参数 或者声明任何已检查异常 181
  • UPDATE SET 中的子查询 (sql server 2005)

    我有一个关于在 Update 语句中使用子查询的问题 我的例子 UPDATE TRIPS SET locations city FROM select Distinct city from poi where poi trip guid t
  • Qt中如何从主窗口打开一个新窗口?

    我是 qt 编程新手 想知道如何在主窗口消失的情况下从主窗口打开一个新窗口 有没有源代码我可以看一下 从主窗口中的插槽调用以下代码 QWidget wdg new QWidget wdg gt show hide this will dis
  • 将字典保存到 UserDefaults

    我试图在 UserDefaults 中存储字典 并且在代码运行时总是导致应用程序崩溃 以下是执行时导致应用程序崩溃的示例代码 我尝试将其转换为 NSDictionary 或最初将其设为 NSDictionary 得到了相同的结果 class
  • String.getBytes("UTF-16") 在所有平台上都会返回相同的结果吗?

    我需要从包含用户密码的字符串创建哈希 为了创建哈希 我使用通过调用获得的字节数组String getBytes 但是 当我在不是默认编码的平台上使用指定编码 例如 UTF 8 调用此方法时 非 ASCII 字符会被默认字符替换 如果我正确理
  • Java 中的“类型不明确”错误是什么?

    在下面的代码中 我在最后一行收到编译器的错误 列表类型不明确 在尝试定义 cgxHist 列表的行上 我究竟做错了什么 import java awt import javax swing import java util public c
  • 学习Ruby:推荐阅读的博客? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我即将开始学习 Ruby 并且想要一些阅读材料来帮助我学习 我正在寻找你的top 5Ruby 上的博客 新闻和任何 活跃的 公告板 我可以很好地处理新闻组 但我更喜欢在 BB 中阅读
  • MySQL“二进制”与“char字符集二进制”

    有什么区别binary 10 vs char 10 character set binary And varbinary 10 vs varchar 10 character set binary 它们是同义词吗allMySQL 引擎 有什
  • 将负 y 轴转换为正 (matplotlib)

    I want to plot bar chart for some parameters for men and women I have done like this 我想显示上侧 正 y 轴 的平均值和下侧 负 x 轴 女性的频率 在这
  • 使用 php 显示当前页面的活动导航

    我正在尝试使用 current url basename SERVER PHP SELF 为了确定我在哪个页面 考虑到我的导航 html 存储在 php 文件中并包含在每个页面中 这是我用来确定哪个导航选项应处于活动状态的代码 ul ul
  • NHibernate QueryOver 选择实体和聚合

    我想要做的是显示一个简单的数据网格 其中包含实体数据及其子项的聚合数据 例如 让我们使用订单和行项目 我想显示订单信息以及行项目数 订单 ID 订单日期 行项目数 现在通常在 SQL 中你可以通过多种方式做到这一点 但这是我能想到的在转换为
  • 将 TypeScript 编译器加载到 ClearScript 中,“WScript 未定义”,不可能完成的任务?

    我尝试使用清晰脚本加载打字稿编译器来编译一些基本的 TypeScript 代码 不幸的是 当执行 TypeScript 编译器源代码时 我收到此错误 WScript 未定义 这是LINQPad我使用过的程序 放置 ClearScript d