I'm getting a Method not found: 'Int32 System.Runtime.InteropServices.Marshal.SizeOf(!!0)'. error when calling CSScript.LoadCode(String scriptText, String[] refAssemblies) when running my application on a Windows Server 2008 R2 Standard machine with .net 4.5 installed. If I run the same code on my Windows 7 .net 4.5.1 machine it works fine. I'm using CS-Script v3.7 (via NuGet). I found the following article:
that gives a possible cause for the issue, however as far as I can tell I'm using the latest version and would never have used a version that was old enough to be a problem. Does CS-Script require 4.5.1 now? Is it possible this is caused by my script referencing something that requires 4.5.1 (I don't think it is)?
Method not found: 'Int32 System.Runtime.InteropServices.Marshal.SizeOf(!!0)'.
at csscript.MetaDataItems..ctor()
at csscript.CSExecutor.ProcessCompilingResult(CompilerResults results, CompilerParameters compilerParams, ScriptParser parser, String scriptFileName, String assemblyFileName, String[] additionalDependencies)
at csscript.CSExecutor.Compile(String scriptFileName)
at csscript.CSExecutor.Compile(String scriptFile, String assemblyFile, Boolean debugBuild)
at CSScriptLibrary.CSScript.LoadWithConfig(String scriptFile, String assemblyFile, Boolean debugBuild, Settings scriptSettings, String compilerOptions, String[] refAssemblies)
at CSScriptLibrary.CSScript.Load(String scriptFile, String assemblyFile, Boolean debugBuild, String[] refAssemblies)
at CSScriptLibrary.CSScript.LoadCode(String scriptText, String tempFileExtension, String assemblyFile, Boolean debugBuild, String[] refAssemblies)
at CSScriptLibrary.CSScript.LoadCode(String scriptText, String assemblyFile, Boolean debugBuild, String[] refAssemblies)
at CSScriptLibrary.CSScript.LoadCode(String scriptText, String[] refAssemblies)