我花了几个小时试图找出问题所在。我知道该程序是有效的,因为我通过在 MonoDevelop 中调试 .il 进行了测试,但是我无法通过它进行编译。这是命令提示符下的日志:
任何帮助表示赞赏。
写入输出文件失败,错误代码=0x80070005
0x80070005 是访问被拒绝错误。您要么无权在该目录中创建文件,要么您试图覆盖在其他位置打开的文件。
我一直在尝试从书中编译一个例子。最终对我有用的是指定输出参数的完整路径。
ilasm c:\folder\codefile.il /output=c:\folder\outfile.exe
仅适用于所有其他遇到此问题的人由于使用密钥文件进行签名:
由于
0x80070005
而无法访问的文件不一定是.il
文件。
就像this答案中所述,我必须向C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys
授予我的用户权限。