Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# CSharpScript-TypeLoadException_C#_Types_Scripting_Typeloadexception_Csharpscript - Fatal编程技术网

C# CSharpScript-TypeLoadException

C# CSharpScript-TypeLoadException,c#,types,scripting,typeloadexception,csharpscript,C#,Types,Scripting,Typeloadexception,Csharpscript,我正在使用Microsoft.CodeAnalysis.CSharp.Scripting的CSharpScript(版本3.4.0-beta2-final)执行自定义计算。有些计算不是直接在脚本中定义的,而是委托给MyPlugin.calculations类的已编译静态方法进行的,它驻留在MyPlugin程序集中(仅调用静态方法) 当我试图从脚本中调用Calculations类的静态方法时 return Calculations.GetHpPipingPrice(); 它抛出以下异常: Typ

我正在使用Microsoft.CodeAnalysis.CSharp.Scripting的CSharpScript(版本3.4.0-beta2-final)执行自定义计算。有些计算不是直接在脚本中定义的,而是委托给MyPlugin.calculations类的已编译静态方法进行的,它驻留在MyPlugin程序集中(仅调用静态方法)

当我试图从脚本中调用Calculations类的静态方法时

return Calculations.GetHpPipingPrice();
它抛出以下异常:

TypeLoadException: Could not load type 'MyPlugin.Calculations' from assembly 'MyPlugin.Data, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.
我不明白,当MyPlugin.Data程序集在MyPlugin程序集中定义时,为什么它试图从MyPlugin.Data程序集中加载类型计算。我添加了对MyPlugin程序集的引用,并将MyPlugin命名空间导入到ScriptOptions中。这里有什么问题?这可能是因为我有一个插件系统,并使用assembly.LoadFrom方法加载MyPlugin程序集?MyPlugin与正在执行的程序集不在同一目录中。数据程序集包含用于初始化的数据(它还包含脚本体)

编辑:这是创建脚本的方式:

var compiledScript = CSharpScript.Create(Body, globalsType: InputType,
                options: ScriptOptions.Default.AddReferences(AssemblyReferences).AddImports(Imports));

CompiledScript = compiledScript.CreateDelegate();

其中AssemblyReferences包含程序集MyPlugin(以及其他),Imports包含MyPlugin命名空间(以及其他)。

您可以在创建
脚本选项的位置发布代码片段吗?请参见原始问题的编辑。