ILコードをアセンブリにコンパイルしようとしています。はilasm.exe
私のC#アプリケーションによって呼び出されるはずです。インスタンスilasm.exe
を介してを呼び出しています。ProcessStartInfo
PEの生成は正常に機能し、アセンブリは機能しています。
私の問題は、私のアプリケーションによって作成されたファイルが、後で実行されるために管理者権限を必要とすることです。
ilasm.exe
コマンドラインから手動で呼び出す場合、管理者権限は必要ありません。
使用されたilasm.exeコマンド:
ilasm.exe /qui /output="c:\test\newFile.exe" <path to il file>
ilasm.exeを呼び出す私のアプリケーション:
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = false;
startInfo.UseShellExecute = false;
startInfo.FileName = @"C:\Windows\Microsoft.NET\Framework\v4.0.30319\ilasm.exe";
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.Arguments = ilFilePath + " /qui /output=" + outputPath + "testFile.exe";
try
{
using (Process exeProcess = Process.Start(startInfo))
{
exeProcess.WaitForExit();
}
}
catch
{
// Log error.
}
私は何か間違ったことをしていますか?C#から別のプロセスを呼び出すときに他に何かを指定する必要がありますか?
管理者権限なしでアプリケーションとコマンドラインを実行しています。