Невозможно запустить ILAsm с помощью ProcessInfo

Я пытаюсь скомпилировать код IL, используя файл bat и С#. Вот код С#

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)) ;

Вот бат файл

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")

Несмотря на это, я получаю сообщение об ошибке при запуске с использованием С#

Программа не может запуститься, потому что на вашем компьютере отсутствует fusion.dll. Попробуйте переустановить программу, чтобы решить эту проблему.

Как мне это исправить? Мне нужно запустить ILAsm с помощью C#.


person Alan Coromano    schedule 13.10.2012    source источник
comment
Нет, я имею в виду ILAsm. Мне нужно скомпилировать файл *.il в *.exe.   -  person Alan Coromano    schedule 13.10.2012
comment
Это просто рабочий путь не задан? Попробуйте указать рабочий путь к папке, в которой находится ilasm.   -  person Marc Gravell    schedule 13.10.2012
comment
попробуйте установить processStartInfo.WorkingDirectory = @"c:\Windows\Microsoft.NET\Framework\v4.0.30319\"   -  person Nasreddine    schedule 13.10.2012
comment
@Nacereddine, кажется, теперь это работает. Это фантастично.   -  person Alan Coromano    schedule 13.10.2012
comment
Я опубликую это как ответ, чтобы вы могли закрыть этот вопрос.   -  person Nasreddine    schedule 13.10.2012


Ответы (1)


попробуй это :

processStartInfo.WorkingDirectory = @"c:\Windows\Microsoft.NET\Framework\v4.0.30319\"
person Nasreddine    schedule 13.10.2012
comment
Однако теперь он говорит, что не может найти *.il для компиляции. Это из-за рабочего каталога. - person Alan Coromano; 13.10.2012
comment
Да. используйте полный путь для .il. - person Nasreddine; 13.10.2012