<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>MSBuild Team Blog : msbuild</title><link>http://blogs.msdn.com/msbuild/archive/tags/msbuild/default.aspx</link><description>Tags: msbuild</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Article in .NET Developer's Journal</title><link>http://blogs.msdn.com/msbuild/archive/2008/01/07/article-in-net-developer-s-journal.aspx</link><pubDate>Mon, 07 Jan 2008 23:58:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7020154</guid><dc:creator>msbuild</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/msbuild/comments/7020154.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msbuild/commentrss.aspx?PostID=7020154</wfw:commentRss><description>&lt;P&gt;There's a &lt;A class="" href="http://dotnet.sys-con.com/read/461416_1.htm" mce_href="http://dotnet.sys-con.com/read/461416_1.htm"&gt;new article&lt;/A&gt; by Xin Yan and myself published in the .NET Developer's Journal.&lt;/P&gt;
&lt;P&gt;We cover MSBuild from scratch, but also the new file format features in .NET 3.5 and our plans for the future. Check it out.&lt;/P&gt;
&lt;P&gt;Dan&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7020154" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msbuild/archive/tags/Dan+Moseley/default.aspx">Dan Moseley</category><category domain="http://blogs.msdn.com/msbuild/archive/tags/msbuild/default.aspx">msbuild</category></item><item><title>More tools...</title><link>http://blogs.msdn.com/msbuild/archive/2007/12/03/more-tools.aspx</link><pubDate>Mon, 03 Dec 2007 21:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6646753</guid><dc:creator>msbuild</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/msbuild/comments/6646753.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msbuild/commentrss.aspx?PostID=6646753</wfw:commentRss><description>&lt;P&gt;Two new MSBuild community tools to check out!&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Eugene from &lt;A class="" href="http://www.attrice.info/msbuild/" mce_href="http://www.attrice.info/msbuild/"&gt;Attrice&lt;/A&gt; has&amp;nbsp;&lt;A class="" href="http://blogs.microsoft.co.il/blogs/tfsidekicks/archive/2007/12/03/visualization-in-msbuild-sidekick-v2.aspx" mce_href="http://blogs.microsoft.co.il/blogs/tfsidekicks/archive/2007/12/03/visualization-in-msbuild-sidekick-v2.aspx"&gt;blogged about &lt;/A&gt;the&amp;nbsp;Visualization support in the new edition of MSBuild SideKick. (There's also another&amp;nbsp;pretty visualizer on &lt;A class="" href="http://www.codeplex.com/dependencyvisualizer" mce_href="http://www.codeplex.com/dependencyvisualizer"&gt;CodePlex&lt;/A&gt;.)&lt;/P&gt;
&lt;P&gt;Partho pointed me at &lt;A class="" href="http://blogs.msdn.com/parthopdas/archive/2007/12/01/visual-debugger-for-msbuild-projects.aspx" mce_href="http://blogs.msdn.com/parthopdas/archive/2007/12/01/visual-debugger-for-msbuild-projects.aspx"&gt;a debugger&lt;/A&gt; he's created. It's &lt;A class="" href="http://www.codeplex.com/msbdbg" mce_href="http://www.codeplex.com/msbdbg"&gt;on CodePlex&lt;/A&gt; too, which means you can help improve it.&amp;nbsp;It runs as a logger, taking advantage of the rich event information that loggers receive, and the fact that loggers currently run synchronously with the build. (This will likely change in future versions of MSBuild.) Debuggers built on the logging infrastructure are about as good as you can get until we have debugger support built into MSBuild - but for many people that can be&amp;nbsp;a lot better than no debugger.&lt;/P&gt;
&lt;P&gt;Nice work.&lt;/P&gt;
&lt;P&gt;Dan&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6646753" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msbuild/archive/tags/Tools/default.aspx">Tools</category><category domain="http://blogs.msdn.com/msbuild/archive/tags/Dan+Moseley/default.aspx">Dan Moseley</category><category domain="http://blogs.msdn.com/msbuild/archive/tags/msbuild/default.aspx">msbuild</category></item><item><title>MSBuild 3.5 "Orcas" has now shipped</title><link>http://blogs.msdn.com/msbuild/archive/2007/11/22/msbuild-3-5-orcas-has-now-shipped.aspx</link><pubDate>Thu, 22 Nov 2007 03:30:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6461443</guid><dc:creator>msbuild</dc:creator><slash:comments>6</slash:comments><comments>http://blogs.msdn.com/msbuild/comments/6461443.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msbuild/commentrss.aspx?PostID=6461443</wfw:commentRss><description>&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&amp;nbsp;&lt;STRONG&gt;&lt;SPAN style="COLOR: red; FONT-FAMILY: 'Arial','sans-serif'"&gt;MSBuild 3.5 "Orcas" has now shipped.&lt;/SPAN&gt;&lt;/STRONG&gt; You can get the free download from &lt;A title=http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6&amp;amp;displaylang=en href="http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyId=333325FD-AE52-4E35-B531-508D977D32A6&amp;amp;displaylang=en"&gt;&lt;FONT color=#800080&gt;here&lt;/FONT&gt;&lt;/A&gt;. It's included in the free &lt;A title=http://www.microsoft.com/express/ href="http://www.microsoft.com/express/" mce_href="http://www.microsoft.com/express/"&gt;&lt;FONT color=#800080&gt;Express Editions&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;and of course &lt;A title=http://msdn2.microsoft.com/en-us/vstudio/products/aa700831.aspx href="http://msdn2.microsoft.com/en-us/vstudio/products/aa700831.aspx" mce_href="http://msdn2.microsoft.com/en-us/vstudio/products/aa700831.aspx"&gt;&lt;FONT color=#800080&gt;Visual Studio 2008&lt;/FONT&gt;&lt;/A&gt; itself. &lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;I'll blog about what's new in MSBuild 3.5 in due course, but the main features are: &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;-- Multiprocessor support -- currently command line only, just build your solutions with /m switch. Includes a new improved console logger optimized for multiproc builds &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;-- Multitargeting support -- use MSBuild 3.5 to build projects targeting .NET 2.0 if you wish; mix targets within a tree or solution &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;-- Performance improvements. Your&amp;nbsp;should see improvements in full builds, but most especially in incremental builds. We have seen some larger incremental build scenarios double in speed. On Vista, we see even bigger improvements, due to SuperFetch. This is all without even enabling multiproc!&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;A couple of more minor features &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;-- ItemDefinitionGroups -- "types" for items. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;-- PropertyGroup/ItemGroup inside targets just like outside -- no more unreadable CreateItem/CreateProperty &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;-- Ability to remove items from lists and modify item metadata during the build -- no more "sloshing" into another list &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;And of course hundreds of bug fixes -- including especially the "generate resource locking" problem. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Also new since 2.0 was released -- MSBuild now builds all of Visual Studio itself. This involved converting thousands of projects, mostly native code: helping us learn about supporting huge trees, and trialling native-code build support for future release. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;I'll have to blog about all of these individually, but for now -- I'm proud of what my team did -- go try it out. &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;Dan &lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 10pt; FONT-FAMILY: 'Arial','sans-serif'"&gt;PS Installation is side-by-side with .NET 2.0, so you should be able to install 3.5 without&amp;nbsp;breaking any 2.0 apps or affecting VS2005 at all.&amp;nbsp;However there is one caveat you should be aware of -- .NET 3.5 installs .NET 2.0 SP1, and this adds some &lt;A title=http://blogs.msdn.com/bclteam/archive/2007/11/19/net-framework-3-5-now-available-justin-van-patten.aspx href="http://blogs.msdn.com/bclteam/archive/2007/11/19/net-framework-3-5-now-available-justin-van-patten.aspx" mce_href="http://blogs.msdn.com/bclteam/archive/2007/11/19/net-framework-3-5-now-available-justin-van-patten.aspx"&gt;&lt;FONT color=#800080&gt;new types&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;to 2.0 assemblies. The means you should be aware that it is possible your app built on a machine with 2.0 SP1 installed and using the new types may not work on a machine without SP1. I've blogged about &lt;A title=http://blogs.msdn.com/msbuild/archive/2007/10/09/multitargeting-against-net-2-0.aspx href="http://blogs.msdn.com/msbuild/archive/2007/10/09/multitargeting-against-net-2-0.aspx" mce_href="http://blogs.msdn.com/msbuild/archive/2007/10/09/multitargeting-against-net-2-0.aspx"&gt;&lt;FONT color=#800080&gt;how to deal with this&lt;/FONT&gt;&lt;/A&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt"&gt;&lt;o:p&gt;&lt;FONT face="Times New Roman"&gt;[edit: fixed font]&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6461443" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msbuild/archive/tags/msbuild/default.aspx">msbuild</category><category domain="http://blogs.msdn.com/msbuild/archive/tags/orcas/default.aspx">orcas</category></item><item><title>How would you spend $100 on MSBuild?</title><link>http://blogs.msdn.com/msbuild/archive/2007/11/17/how-would-you-spend-100-on-msbuild.aspx</link><pubDate>Sat, 17 Nov 2007 21:43:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6341759</guid><dc:creator>msbuild</dc:creator><slash:comments>117</slash:comments><comments>http://blogs.msdn.com/msbuild/comments/6341759.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msbuild/commentrss.aspx?PostID=6341759</wfw:commentRss><description>&lt;P&gt;We're currently planning for our next version (aka, "Dev10" - no code name this time) and subsequent releases. In that spirit, I'd like to do a quick poll of MSBuild aficionados to help us keep our "vision" for MSBuild aligned with yours, our customers. &lt;/P&gt;
&lt;P&gt;First, a caveat - while ideally I would like to rank the results and work down the list, the reality is that we have other constraints: although we are a separate build platform, our biggest customer by far is Visual Studio and its customers. There's a lot more Visual Studio users than direct MSBuild users, so when Visual Studio needs to add a feature that requires work on MSBuild, we have to help. Then there's other constraints, like team resources. There's no guarantee which of these will appear in what version, and some of them may not be worth any investment. Some of them I just made up.&lt;/P&gt;
&lt;P&gt;OK. Here’s some brainstormed features. Some of them are properly Visual Studio features, but they overlap closely with build:&lt;/P&gt;
&lt;P&gt;1) Higher performance multiprocessor support. For example, we suspect there is plenty of room to improve the scheduling we do, and find speedups elsewhere in the code. As more and more of us have multicore machines, this might be a good place to invest.&lt;/P&gt;
&lt;P&gt;2) VC support. This means converting VC projects (.vcproj) to MSBuild format, a customizable and extensible build process entirely defined by MSBuild .targets files rather than in makefiles or built into the VC project system, reuseable tasks for native code tools just like we have today for managed code, changing the VS project system for VC projects to sit on top of MSBuild format projects and build process, and replacing use of vcbuild.exe with msbuild.exe.&lt;/P&gt;
&lt;P&gt;3) Support for other Microsoft project types that aren't yet in MSBuild format: Deployment/MSI (.vdproj), SQL Reporting (.rptproj), Biztalk (.btproj), Speech server (.prproj)&amp;nbsp;etc -- whether currently supported by a VS project system or not. This is essentially a process of internal evangelization and encouragement for us.&lt;/P&gt;
&lt;P&gt;4) Conversion of Visual Studio solution files (.sln files) and their (rudimentary) build process to MSBuild format and the VS support for reading and writing these, opening the way to create a targets file useful for traversing a tree of projects, and to let VS cleanly support n-level project hierarchies. &lt;/P&gt;
&lt;P&gt;5) Extensible up-to-date checking: a way to plug in up-to-date checker extensions that you could use on selected Targets as an alternative to the simple timestamp checking you are currently restricted to. Perhaps including a ready-made extension that would by some means automatically support transitive dependencies - header files are an example of these; or to compare public interfaces for significant changes.&lt;/P&gt;
&lt;P&gt;6) Distributed Build. (Like multiprocessor build we are now shipping, but building spread over a set of machines that you have pre-provisioned; possibly opening the way for future Team Build support for it too.)&lt;/P&gt;
&lt;P&gt;7) Extensible reuseable inline tasks. This means the ability to create extensions that consume the language or description format of your choice and to create a task that you could use without explicit compilation or deployment. For example, a Powershell extension that you could use to create tasks implemented in Powershell. Think of putting script underneath a &amp;lt;UsingTask&amp;gt; element. These inline tasks would be easy to create and share online. Might include ready-made extensions for Powershell, and/or a data-description format for tool switches, so you could quickly create a task wrapping a command line tool without any compilation.&lt;/P&gt;
&lt;P&gt;8) Typing and scoping for items and properties. For example, declaring an item to contain a path; letting a property fall out of scope at the end of a target.&lt;/P&gt;
&lt;P&gt;9) Extensible functions. Today we have only 'exists(..)' and it's stepchild 'hastrailingslash(...)'. This would be an extension allowing new functions to be created for use in conditional expressions, and possibly elsewhere, and some functions like perhaps combinepath($(root),$(file)). Perhaps more built-in metadata to go along with %(Filename) and such.&lt;/P&gt;
&lt;P&gt;11) An MSBuild debugger with full Visual Studio support for stepping, inspecting locals, and breakpoints. Today you have to use &amp;lt;Message&amp;gt; tasks and gaze at diagnostic logging output.&lt;/P&gt;
&lt;P&gt;12) Visualization for project and target dependencies, mining of what files are consumed by what projects, impact analysis for changes to particular files, possibly leading to support for build refactoring at the project/tree level. This is essentially richer logging and datamining and a high level on a huge source tree.&lt;/P&gt;
&lt;P&gt;So now here's the poll. If you had only $100 to spend, how would you distribute it amongst them? &lt;/P&gt;
&lt;P&gt;Dan&lt;/P&gt;
&lt;P&gt;(Edit: gave Distributed build a unique number :-) )&lt;BR&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6341759" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msbuild/archive/tags/MSBuild+in+Visual+Studio/default.aspx">MSBuild in Visual Studio</category><category domain="http://blogs.msdn.com/msbuild/archive/tags/Dan+Moseley/default.aspx">Dan Moseley</category><category domain="http://blogs.msdn.com/msbuild/archive/tags/object+model/default.aspx">object model</category><category domain="http://blogs.msdn.com/msbuild/archive/tags/multiproc/default.aspx">multiproc</category><category domain="http://blogs.msdn.com/msbuild/archive/tags/msbuild/default.aspx">msbuild</category></item><item><title>What are Targets, Tasks, and Tools?</title><link>http://blogs.msdn.com/msbuild/archive/2007/11/14/what-are-targets-tasks-and-tools.aspx</link><pubDate>Wed, 14 Nov 2007 23:35:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6225415</guid><dc:creator>msbuild</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/msbuild/comments/6225415.aspx</comments><wfw:commentRss>http://blogs.msdn.com/msbuild/commentrss.aspx?PostID=6225415</wfw:commentRss><description>&lt;P&gt;I've heard these confused in the context of MSBuild, so let's talk a little about what they are:&lt;/P&gt;
&lt;P&gt;*&amp;nbsp;A TARGET is a grouping of tasks (often 1) designed to do a particular job. For example, a Link target would be designed to produce a final binary from object files. Targets can declare other targets that they depend on, and MSBuild will make sure those are run first. At present targets are the unit of incremental build: declaring Inputs and Outputs on a target will cause MSBuild to compare their timestamps and skip the target if the inputs are up to date. Because a target is the unit of build, it is the entity that other parts of the build depend on or invoke (via CallTarget or the MSBuild task from another project). The implementation of a target can be modified later, so long as it's "contract" ("consume X and Y properties and list of object files O to produce binary Z") is preserved. A future version will likely have an extensibility model for up-to-date checking, and that will likely plug in at the target level. Once a target has run once in the context of a project,&amp;nbsp;global properties, toolsversion,&amp;nbsp;and build, it will be immediately skipped next time it is invoked, without even checking timestamps. When you write a target, always check that it skips properly in the incremental build case. MSBuild logs information about targets during the build, and any extra logging you want has to happen from a task, especially the &amp;lt;Message&amp;gt;, &amp;lt;Warning&amp;gt;, and &amp;lt;Error&amp;gt; tasks. Targets can be batched, although this is rarely done. &lt;/P&gt;
&lt;P&gt;A TASK is a reuseable implementation of some build action. In this case the only task in the Link target would likely be the task named Link. It is fed parameters, including the files to link, does the link, and the build proceeds. At present tasks must be .NET assemblies deriving from the interface Microsoft.Build.Framework.ITask. Tasks can consume and emit items and properties. By design, they have no other insight into the state of the build. They should not discover files on disk - this makes them opaque and less reuseable. PropertyGroup and ItemGroup inside targets can be thought of as tasks, but they have special syntax and powers. If your target is starting to get too "clever", write a task. We hear loud and clear that not everybody wants to write and compile code to create a task, and we'll address this future. Tasks can be batched, and this is commonly done either to force a task to run once for each source file (something like Sources="'%(Compile.Identity)'") or to filter out certain input files, by filtering in the condition on metadata on source items.&lt;/P&gt;
&lt;P&gt;A TOOL is an implementation detail of some tasks. A Link task may happen to currently wrap a tool named link.exe and it may happen that the parameters on this Link task pretty much wrap 1:1 with the command line switches on this tool named link.exe. However those are implementation details. One day the link task could be modified to load a "link.dll". Or the owners of link.exe could flip the /clr switch in order to implement ITask themselves. Tasks that wrap tools will want to derive from the ready-made abstract class named Microsoft.Build.Utilities.ToolTask, which provides much of the functionality they will need. Many tasks do not wrap tools. [ Aside: For example, during development of MSBuild v1, we initially implemented resource generation by wrapping resgen.exe. However a key scenario was to build a typical VB or C# project without even having the .NET SDK installed, but resgen.exe did not ship in the .NET Framework and we couldn't persuade them to move it. So we wrote our own resource generation task in code, called GenerateResource. (Resgen.exe is just a thin wrapper over BCL APIs anyway.) A similar situation exists for al.exe, but we did not write a task to do that without the tool: al.exe is some pretty hairy code. This is why you need VS or the .NET SDK installed to build projects with satellite assemblies. But I digress.]&lt;/P&gt;
&lt;P&gt;Unlike makefiles, the inputs and outputs on a Target are not necessarily what the “build action”, ie the task, operates on. The task operates only on the parameters it is given. Typically however the Inputs on the Target would be among the inputs passed to the task, but this is not necessarily true. For example the Link target’s Inputs might include $(MSBuildProjectFullPath), so that the target is forced to run if the project file itself has been edited - yet the Link task would not be passed the project file.&lt;/P&gt;
&lt;P&gt;Dan&lt;BR&gt;&lt;/P&gt;
&lt;P mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6225415" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/msbuild/archive/tags/Tools/default.aspx">Tools</category><category domain="http://blogs.msdn.com/msbuild/archive/tags/Dan+Moseley/default.aspx">Dan Moseley</category><category domain="http://blogs.msdn.com/msbuild/archive/tags/msbuild/default.aspx">msbuild</category><category domain="http://blogs.msdn.com/msbuild/archive/tags/tasks/default.aspx">tasks</category><category domain="http://blogs.msdn.com/msbuild/archive/tags/targets/default.aspx">targets</category></item></channel></rss>