问题描述
对于自制的构建系统,我想使用MSBuild的tracker.exe来检测由C#编译器csc.exe读取/写入的文件。在我的系统上,tracker.exe和csc.exe位于:
- C:\ VS2017 \ MSBuild \ 15.0 \ Bin \ Tracker.exe
- C:\ VS2017 \ MSBuild \ 15.0 \ Bin \ Roslyn \ csc.exe
我进行了2个实验:
- tracker / if tlogsDir / c csc HelloWorld.cs
- tracker / if cmd_tlogsDir / c cmd / c csc HelloWorld.cs
两个实验都能正确生成HelloWorld.exe。 在第一个实验中,tracker在目录tlogsDir中生成csc.read和csc.write tlog文件,其内容正确显示csc已读取HelloWorld.cs(以及许多其他文件)并已写入HelloWorld.exe。
在第二个实验中,跟踪器在目录cmd_tlogsDir中生成一个cmd.read tlog文件。该文件显示只读取了C:\ WINDOWS \ GLOBALIZATION \ SORTING \ SORTDEFAULT.NLS。
请注意,tracker.exe能够检测整个进程树中的读写文件。可以使用例如记事本来读取/写入文件来轻松证明这一点:
- tracker.exe / if tlogsDir / c记事本
- tracker.exe / if cmd_tlogsDir / c cmd / c记事本
是什么原因导致在使用'cmd / c csc HelloWorld.cs'运行时无法跟踪csc? 为什么csc在这方面的行为与例如记事本? 有没有解决此问题的方法?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)