开发VS Code扩展时如何调用dll

时间:2018-07-14 06:23:04

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

我尝试将SQL美化器编写为VS Code扩展。 SQL美化引擎/解析器已经以.dll的形式提供,因为几年前我用C#(超过1万行代码)编写了它。 由于VS代码扩展是用Typescript / Javascript编写的,因此看起来您无法调用dll,或者我太笨了!您知道如何从VS代码扩展中调用我的dll吗? 谢谢。

2 个答案:

答案 0 :(得分:1)

  

因为我是几年前用C#编写的

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

更多

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

答案 1 :(得分:1)

您可以通过将dll,jar或exe文件放入资产文件夹来运行它们。可以使用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);
    }                           
});