我正在Visual 2015中构建一个WPF库,而且构建永远不会完成。在生成输出诊断级别上,我可以看到msbuild启动的最后一个任务是
calling 'C:\Windows\Microsoft.NET\Framework\v4.0.30319\ILAsm.exe' with /nologo "/out:[PathtoOutputDLL]" "[PathtoILfile]" /DLL "/resource=[PathtoResfile]" /debug (TaskId:65)我可以看到裂口的过程是徘徊,而不是崩溃,但什么也没有发生。如果我通过关闭msbuild强制停止构建,并在控制台中启动相同的命令,它就可以快速地输出Operation completed successfully。
我使用了Process来获取正在发生的事情的句柄,我发现了一些奇怪的东西-ish,当ilasm成功(从控制台运行),进程被命名为ilasm.exe,当它是一个失败时,它被命名为ILAsm.exe (请注意情况的改变),我不明白为什么,特别是到exe的路径是相同的?流程事件日志中有一些内容提到要运行的二进制文件的预取:
成功:"IRP_MJ_READ","C:\Windows\Prefetch\ILASM.EXE-FD82B157.pf",“成功”,“偏移量: 0,长度:82642,优先级:正常”
失败:"IRP_MJ_READ","C:\Windows\Prefetch\ILASM.EXE-FD82B157.pf",“成功”,“偏移量: 0,长度:82844,优先级:正常”
同一文件但突然间大小不同?
发布于 2015-11-23 13:39:08
我仍然不知道为什么会被困,但我已经把它缩小到了第三方COM互操作和UnmanagedExports之间糟糕的关系,由Robert编写。
这个特定的类库依赖于第三方COM互操作,它存在于UnmanagedExports修改的IL中,以我不知道的方式破坏了ILASM或UnmanagedExports。但是,解锁构建的一件事是将"Embed类型“设置为false,这样COM互操作不会在输出中结束,那么UnmanagedExports就可以正常工作了。
https://stackoverflow.com/questions/33784556
复制相似问题