【发布时间】:2012-07-14 04:24:21
【问题描述】:
我正在运行时生成程序集 (*.dll)。编译过程使用 CodeDom 执行,如以下帖子中所推荐的:
Generating DLL assembly dynamically at run time
我的代码和程序集生成成功,没有错误。当我尝试在运行时通过反射加载这个生成的程序集时,问题就出现了:
// load for reflection only
var _assemblyTempLoad = Assembly.LoadFrom(assembly.FullName);
抛出以下异常:
“无法加载文件或程序集 'nameforassembly.dll' 或其之一 依赖关系。该模块应包含一个程序集 清单。”
如何生成清单文件或解决此问题?
我想澄清一下,程序集是在运行时生成的,使用以下代码:
CompilerResults compilerResult = codeDomProvider.CompileAssemblyFromFile(compilerParameters, Path.Combine(path, sourceCodeFile));`
提前谢谢你
【问题讨论】:
-
文件是否损坏或编译为错误的框架或编译为 64 位,而您正试图加载到 32 位进程?如果您尝试将编译后的 dll 添加到您的项目中(仅作为测试),您可能会得到更准确的错误。
-
给出相同的链接,您可以通过添加类似参数的行来指定平台。CompilerOptions = "/platform:anycpu" ;
标签: c# reflection manifest codedom