gpt4 book ai didi

c# - 如何从 EdgeJS 应用程序引用 Roslyn 程序集?

转载 作者:行者123 更新时间:2023-11-30 23:29:21 25 4
gpt4 key购买 nike

我想使用 EdgeJS 应用程序中的 Roslyn 库,但不确定如何正确引用它。这是有问题的代码:

var edge = require('edge');
var toroslyn = edge.func(function(){/*
using System;
using System.Threading.Tasks;
using Microsoft.CodeAnalysis.CSharp.Scripting;
public class Startup
{
public async Task<object> Invoke(object code)
{
return await CSharpScript.EvaluateAsync("1 + 2");
}
}
*/
});
toroslyn(null, function (error, result) { console.log(result); });

和 project.json:

{
"dependencies": {
"Microsoft.CodeAnalysis.CSharp.Scripting": "1.1.1",
},
"frameworks": {
"dnxcore50": {}
}
}

如果在执行 dnu restore 后它能按原样工作就好了,但是 documentation声明我需要引用内联依赖项,如 #r "Microsoft.CodeAnalysis.CSharp.Scripting.dll"

但是,为了让它工作,我需要指定程序集的整个路径,如 #r "C:/Users/Christian/.dnx/packages/....../Microsoft.CodeAnalysis.CSharp .Scripting.dll" 或者确保所有依赖程序集都位于与我的节点应用程序相同的文件夹中。

这是我有的两个选项还是我遗漏了什么?

最佳答案

您还可以将完全限定的引用程序集名称指定为传入 edge.func 调用的数组,如 https://github.com/tjanczuk/edge#how-to-specify-additional-clr-assembly-references-in-c-code 中所述。 :

var add7 = edge.func({    source: function() {/*        using System.Data;        using System.Threading.Tasks;        public class Startup        {            public async Task Invoke(object input)            {                // ...            }        }    */},    references: [ 'System.Data.dll' ]);

您可能会发现在 JavaScript 中构造完全限定的程序集名称比在代码中嵌入为 #r 指令的一部分更容易。

关于c# - 如何从 EdgeJS 应用程序引用 Roslyn 程序集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35505270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com