1

我正在尝试使用 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。

4

1 回答 1

3

试试这个 :

processStartInfo.WorkingDirectory = @"c:\Windows\Microsoft.NET\Framework\v4.0.30319\"
于 2012-10-13T08:53:10.690 回答