C# 使用文件路径引用程序集

C# 使用文件路径引用程序集,c#,class,reflection,codedom,C#,Class,Reflection,Codedom,我正在使用CodeDom/Reflection从一个文件编译一个C#脚本。我目前的代码是: string sourceCode=File.ReadAllText(项目); var compParms=新编译器参数 { GenerateExecutable=false, GenerateInMemory=true }; var csProvider=new CSharpCodeProvider(); compParms.GenerateExecutable=false; compParms.Out

我正在使用CodeDom/Reflection从一个文件编译一个C#脚本。我目前的代码是:

string sourceCode=File.ReadAllText(项目);
var compParms=新编译器参数
{
GenerateExecutable=false,
GenerateInMemory=true
};
var csProvider=new CSharpCodeProvider();
compParms.GenerateExecutable=false;
compParms.OutputAssembly=“agame/temp/dll/common戡”+Guid.NewGuid().ToString()+”.dll”;
compParms.referencedAssembly.Add(“System.Windows.Forms.dll”);
compParms.referencedAssembly.Add(“System.dll”);
compParms.referencedAssembly.Add(“System.Windows.Forms.dll”);
compParms.referencedAssembly.Add(“System.IO.dll”);
compParms.referencedpassemblies.Add(“C:/Users/”+Environment.UserName+“/\u ache/external\u acs.dll”);
compParms.GenerateInMemory=true;
CompilerResults CompilerResults=csProvider.CompileAsemblyFromSource(compParms,sourceCode);
object typeInstance=compilerResults.CompiledAssembly.CreateInstance(“SomeClass”);
MethodInfo mi=typeInstance.GetType().GetMethod(“Add42”);
int methodOutput=(int)mi.Invoke(typeInstance,新对象[]{1});
Show(methodOutput.ToString());
在第四个
ReferencedAssemblys.Add()
处发生错误,这是我试图引用外部DLL的位置
我的错误是:无法加载文件或程序集“dll位置”或其依赖项之一。系统找不到指定的文件“
我还尝试引用所有外部DLL的依赖项,如下所示:

compParms.referencedpassemblies.Add(“C:/Users/”+Environment.UserName+“/\u ache/external\u acs.dll”);
compParms.referencedpassemblies.Add(“C:/Users/”+Environment.UserName+“/\u ache/csfml-audio-2.dll”);
compParms.referencedpassemblies.Add(“C:/Users/”+Environment.UserName+“/\u ache/csfml-graphics-2.dll”);
compParms.referencedpassemblies.Add(“C:/Users/”+Environment.UserName+“/\u ache/csfml-network-2.dll”);
compParms.referencedpassemblies.Add(“C:/Users/”+Environment.UserName+“/\u ache/csfml-system-2.dll”);
compParms.referencedpassemblies.Add(“C:/Users/”+Environment.UserName+“/\u ache/csfml-window-2.dll”);
compParms.referencedpassemblies.Add(“C:/Users/”+Environment.UserName+“/\u ache/libsndfile-1.dll”);
compParms.referencedpassemblies.Add(“C:/Users/”+Environment.UserName+“/\u ache/openal32.dll”);
compParms.referencedpassemblies.Add(“C:/Users/”+Environment.UserName+“/\u ache/Otter.dll”);
compParms.referencedsassemblies.Add(“C:/Users/”+Environment.UserName+“/\u ache/sfmlnet-audio-2.dll”);
compParms.referencedpassemblies.Add(“C:/Users/”+Environment.UserName+“/_ache/sfmlnet-graphics-2.dll”);
compParms.referencedpassemblies.Add(“C:/Users/”+Environment.UserName+“/\u ache/sfmlnet-system-2.dll”);
compParms.referencedpassemblies.Add(“C:/Users/”+Environment.UserName+“/\u ache/sfmlnet-window-2.dll”);
如何通过文件路径引用外部DLL?如果无法通过文件路径引用它,是否有方法引用外部DLL?我使用它来允许在我的自定义C#游戏引擎中编写脚本。

如果您能帮助解决此问题,我们将不胜感激

我编辑了我的问题以显示错误消息。我错了!为什么我的问题被否决了?文件/dll肯定存在于该路径上吗?是的,它存在于该路径上。通常,
.referencedAssembly.Add
…支持完整路径。。。对于要回答的问题,所以你们需要一个事实上不太可能解决这类问题的答案。。。对于这个错误有很多调试帮助-您可以从
程序集开始。LoadFrom
确认您声称完美的程序集实际上可以加载到您的程序中。。。而不是找出缺少的依赖项。。。(基本上你必须自己解决)