微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

MSBuild tracker.exe无法检测到“ cmd / c csc.exe HelloWorlds.cs”读取/写入的文件

如何解决MSBuild tracker.exe无法检测到“ cmd / c csc.exe HelloWorlds.cs”读取/写入的文件

对于自制的构建系统,我想使用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个实验:

  1. tracker / if tlogsDir / c csc HelloWorld.cs
  2. 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能够检测整个进程树中的读写文件。可以使用例如记事本来读取/写入文件来轻松证明这一点:

  1. tracker.exe / if tlogsDir / c记事本
  2. tracker.exe / if cmd_tlogsDir / c cmd / c记事本

在两种记事本中,跟踪器都会生成正确的日志文件

是什么原因导致在使用'cmd / c csc HelloWorld.cs'运行时无法跟踪csc? 为什么csc在这方面的行为与例如记事本? 有没有解决此问题的方法

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。