C# .Net脚本引擎(C)-是否存在某种;头文件";或;dll引用文件";对于.Net语言?
我正在用C语言制作一个小型脚本引擎,我想知道,是否有某种编译器指令或其他类似头文件的文件可以用脚本文件编译,以定义脚本文件引用的托管DLLC# .Net脚本引擎(C)-是否存在某种;头文件";或;dll引用文件";对于.Net语言?,c#,.net,vb.net,visual-studio,jscript.net,C#,.net,Vb.net,Visual Studio,Jscript.net,我正在用C语言制作一个小型脚本引擎,我想知道,是否有某种编译器指令或其他类似头文件的文件可以用脚本文件编译,以定义脚本文件引用的托管DLL public static CompilerResults LoadScript( string SourceCodeFile, string[] References) { var Parameters = new CompilerParameters() { GenerateExecutable = false,
public static CompilerResults LoadScript(
string SourceCodeFile, string[] References)
{
var Parameters = new CompilerParameters()
{
GenerateExecutable = false,
GenerateInMemory = true,
IncludeDebugInformation = false,
};
Parameters.ReferencedAssemblies.AddRange(References);
return CSharpCodeProvider.CreateProvider(
CSharpCodeProvider.GetLanguageFromExtension(
Path.GetExtension(SourceCodeFile)))
.CompileAssemblyFromFile(Parameters, SourceCodeFile);
}
我希望能够消除这一行代码:并将这些信息放在我的脚本中。问题是我不一定提前知道脚本将引用什么.dll。我目前的解决方案是解析一个自定义的“script.cs.refs”文件,该文件如下所示:
Parameters.ReferencedAssemblies.AddRange(References);
"System.dll","System.Data.dll","SomeOther.dll","Ect.dll"
如果您能帮助了解visual studio在何处存储对DLL的引用,以及它是否必须在单独的文件中定义,是否有我应该使用的标准格式,可以加载到告诉它此信息的编译器中,我们将不胜感激 不能在C#源代码中指定程序集引用,否 Visual Studio将在编译程序生成项目时将项目中的引用传递给编译器 请注意,在使用命令行时,有一个包含一组选项的概念。这可以在命令行上指定,或者在.NET framework目录中有一个默认的
csc.resp
文件,该文件具有包括引用在内的默认选项,但我怀疑这是从CSharpCodeProvider
使用的
您可能有自己的“特殊注释”格式,列出引用-解析提供给您的脚本以获取这些引用,然后传入这些引用。我认为没有标准的解决方案,除了可以采用类似ASP.NET的方法,在源文件中定义对程序集的引用 然后你需要
//@ Assembly name="SomeOther.dll"
然后,您可以为这些/@行regex sourcode文件并解析出程序集名称。这正是我所担心的,我想我现在可以在脚本文件顶部的注释中定义该信息。。。