【问题标题】:How to call a dll when developping a VS Code Extension开发 VS Code 扩展时如何调用 dll
【发布时间】:2018-07-14 06:23:04
【问题描述】:

我尝试编写一个 SQL 美化器作为 VS Code 扩展。 SQL 美化引擎/解析器已经以 .dll 形式提供,因为几年前我用 C# 编写了它(超过 10K 行代码)。 由于 VS 代码扩展是用 typescript / Javascript 编写的,看起来你不能调用 dll 或者我太愚蠢了!?你知道如何从 VS 代码扩展中调用我的 dll 吗? 谢谢。

【问题讨论】:

    标签: typescript dll visual-studio-code dllimport vscode-extensions


    【解决方案1】:

    因为我几年前用 C# 写过它

    您可以使用 Edge 从 JavaScript (TypeScript) 调用 C# 代码

    更多

    官方文档https://github.com/tjanczuk/edge

    【讨论】:

    • Edge 还在维护吗?看起来它需要与 node.js 一起定期升级,所以我的扩展依赖于 Edge 升级
    【解决方案2】:

    您可以通过将 dll、jar 或 exe 文件放在 assets 文件夹中来运行它们。可以使用 child_process 来完成。

    const vscode = require('vscode');
    const path = require('path');
    const child_process = require('child_process')
    
    let myAppPath = vscode.Uri.file(path.join(context.extensionPath, "assets/myapp.dll"));
    let execCommand = `dotnet ${myAppPath.fsPath}`;
    child_process.exec(execCommand, (err, stdout, stderr) => {
        if (stdout) {
            vscode.window.showInformationMessage(stdout);
        }
        if (stderr) {
            vscode.window.showWarningMessage(stderr);
        }
        if (err) {
            vscode.window.showErrorMessage("" + err);
        }                           
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-10
      • 2020-04-13
      • 1970-01-01
      • 2016-11-29
      相关资源
      最近更新 更多