TeamCity构建的VS2012解决方案包含C ++项目,其中包含无法清除目录的设备驱动程序

时间:2013-05-08 10:00:27

标签: c++ visual-studio-2012 teamcity wdk

当Team City在重新启动后第二次尝试构建我的设备驱动程序时,我遇到了失败。

它无法清除VCS根目录,因为目录已锁定且不确定原因。

1 个答案:

答案 0 :(得分:0)

无法在网上找到对这个问题的引用......所以这里是......

VS2012和WDK 8.0引入了一个名为oacrmonitor.exe的进程,该进程对设备驱动程序源代码执行静态代码分析。

不幸的是,它似乎锁定了源代码所在的目录,然后在同一项目的下一个版本中,当清理VCS根目录时,它无法删除锁定的目录,从而使构建失败。

重新启动显然会解锁目录。

我到目前为止唯一的解决方案是在解决方案的msbuild之后立即尝试杀死进程,你需要在DOS中使用这样的东西......

x:\> taskkill /f /IM oacrmonitor.exe

或nant ...

<exec program="cmd.exe" failonerror="false">
  <arg line='/c @taskkill /F /IM "oacrmonitor.exe" &gt;1 nul 2&gt;&amp;1 &amp; rem and this causes nant to ignore errors' />
</exec>