开发者

MSBuild taking forever to check timestamps when started from VS

开发者 https://www.devze.com 2022-12-14 04:59 出处:网络
I have a MSBuild file that uses item batching to send a bunch of files into a task. The target uses a vector of items for input and output.

I have a MSBuild file that uses item batching to send a bunch of files into a task. The target uses a vector of items for input and output.

When I run msbuild from the command line (I run make which then blindly calls msbuild), msbuild checks timestamps almost instantly and skips task execution (nothing to build).

When I call make from Visual Studio (make then blindly calls msbuild) the timestamp comparison takes around 20 seconds.

Any ideas? What is going on?

My msbuild file looks like this:

<!-- All items ha开发者_开发知识库ve 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>


Looks like when VS calls a tool it does not pass all environmental variables and sdk paths. VS ended up calling MSBuild 2.0 instead of 3.5


This post may help: http://blogs.msdn.com/msbuild/archive/2007/04/13/recursion-and-itemgroups-inside-targets.aspx

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号