从VS开始,MSBuild将永远检查时间戳

时间:2009-12-18 18:14:40

标签: visual-studio-2008 msbuild

我有一个MSBuild文件,它使用项目批处理将一堆文件发送到任务中。目标使用项目向量进行输入和输出。

当我从命令行运行msbuild时(我运行make然后盲目地调用msbuild),msbuild几乎立即检查时间戳并跳过任务执行(无需构建)。

当我从Visual Studio调用make(make然后盲目调用msbuild)时,时间戳比较大约需要20秒。

有什么想法吗?发生了什么事?

我的msbuild文件如下所示:

<!-- All items have metadata and look like this -->
<MyItem Include="Ignored">
  <Out>SomeFile.cpp</Out>
  <Src>SomeFile.xml</Src>
  <Tem>SomeFile.xyz</Tem>
  <Mod />
</MyItem> 

<!-- My main target looks like this -->
<Target Name="GenerateCode"
          Outputs="@(MyItem->'%(Out)')"
          Inputs="@(MyItem->'%(Src)');@(MyItem->'%(Tem)');@(MyItem->'%(Mod)')"
          DependsOnTargets="CreateOutputDirs">
    <!-- ... -->
</Target>

2 个答案:

答案 0 :(得分:0)

看起来当VS调用工具时,它不会传递所有环境变量和sdk路径。 VS最终调用MSBuild 2.0而不是3.5

答案 1 :(得分:0)