无法使用ProcessInfo运行ILAsm

时间:2012-10-13 08:38:46

标签: c# .net cil il ilasm

我正在尝试使用bat文件和C#编译IL代码。这是一个C#代码

ProcessStartInfo processStartInfo = new ProcessStartInfo(ILCompiler, @"c:\Windows\Microsoft.NET\Framework\v4.0.30319\" + ILCompiler + 
    " "+OutILFile+" /exe /output:" + OutExeFile + " /debug=IMPL");
processStartInfo.UseShellExecute = false;
processStartInfo.CreateNoWindow = false;
using (Process.Start(processStartInfo)) ;

这是一个bat文件

c:\Windows\Microsoft.NET\Framework\v4.0.30319\ilasm.exe Source.il /exe /output:my-assebmly.exe /debug=IMPL
pause

运行ILAsm的字符串完全相同(即processStartInfo.Arguments = Arguments = "c:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319\\ilasm.exe Source.il /exe /output:my-assebmly.exe /debug=IMPL")

尽管如此,当我使用C#

运行时出现错误
  

程序无法启动,因为您的计算机缺少fusion.dll。尝试重新安装该程序以解决此问题。

我该如何解决?我需要使用C#运行ILAsm。

1 个答案:

答案 0 :(得分:3)

试试这个:

processStartInfo.WorkingDirectory = @"c:\Windows\Microsoft.NET\Framework\v4.0.30319\"