首页 > 解决方案 > CSScript 重新编译?

问题描述

我正在将 VB.Net 脚本添加到 C# 应用程序中。如何使用 CS Script 重新编译脚本?在 C# 后端,我添加如下脚本代码:

public static string AddGlobalCode(string code)
{
    // Wrap the user's code in some boilerplate
    string codeText =
@"Option Strict Off
Imports System
Namespace DXBScript
Public Module globals
" + code + @"
End Module
End Namespace";
    try
    {
        CSScript.LoadCode(codeText);
        return "OK";
    }
    catch (Exception ex)
    {
        return ex.Message;
    }
}

code一些 vb.net 代码在哪里。它可以是Class,SubFunction。例如:

Function DoSomething(x)
    Return x + x
End Function

Class SomeClass
   ...
End Class

CallSomeFunction()

我第一次运行该AddGlobalCode函数时,它编译正常,我可以调用该DoSomething函数。但是,如果我想修改脚本(无需重新启动整个应用程序),例如:

Function DoSomething(x)
    Return x + x * 2
End Function

如果我AddGlobalCode再次运行然后执行DoSomething函数 - 使用相同的参数 - 我得到原始结果 ( x + x),而不是新结果 ( x + x * 2)。如果我使用不同的参数运行该函数,则会出现错误:

错误 BC30562:“DoSomething”在模块“DXBScript.globals”和“DXBScript.globals”中的声明之间不明确。

如何删除然后添加或修改DoSomething?最好,我会删除或修改整个globalsVB 模块,然后将其添加回来——因为脚本中不仅仅是函数DoSomething

这是我作为 CS Script 的第一次尝试(使用 MS Script Control)。

标签: c#vb.netcs-script

解决方案


推荐阅读