Is there and visual tool to see tfs build, msbuild file dependencies? - msbuild

We have a very large and complex bunch of tfsbuild msbuild scripts.
Is there any way to view msbuild or tfsbuild files outside of the text editor?
I'm interested in the connections between Targets and the DependsOnTarget and CallTarget commands.

Try MSBuild Explorer
http://www.msbuildexplorer.com/
I don't know if you be able to see the "imported" targets, but it could be a start.

Related

How to run external msbuild file from cruise control .net

I have an msbuild xml file that builds about 20 vc2010 solutions. It retrieves the code from source control, builds all the solutions, and obfuscates the results (for the .net projects). I'd like to use this from ccnet. Is there a way to just 'call' this xml file to build my projects? Are there disadvantages to doing it this way?
Thanks
Yes, CruiseControl.NET has a task for building MSBuild projects.

need platform independent alternative to ItemGroup and PropertyGroup in msbuild .proj file

I am porting a visual studio project to mono develop. I have a fairly complex
post-build script in a .proj file, which copies various groups of files into the distribution
folder. Can anyone suggest a suitable alternative to this for linux? I tried xbuild,
but it doesn't support itemgroup and propertygroup.
The only way I can think of is to extend xbuild to support them,
https://bugzilla.xamarin.com/show_bug.cgi?id=3055
It is a known bug for a long time (> 6 months). Someone may implement it and submit the patch to Mono team.
NAnt was a possible alternative, but I don't think it worth the while to rewrite your MSBuild scripts to NAnt scripts.

Using MSBUILD with C++ Builder 2010

Enlighten me please... I have a buildserver that runs MSBUILD to build projects done in C++ Builder 2010. I wanted to setup that entire setup on my local machine to be able to work on the build scripts without messing up the live build server. But I was wondering how MSBUILD knew how to work with C++ Builder projects.
Then I read that a file called Borland.Group.Targets was the magic piece. But I can't find it anywhere. I looked at Embarcaderos site, Microsoft's site, the C++ builder and MSBUILD installations etc. What is it, where do I get it and how does it work?
(My guess is that it's a file with "rules" telling MSBUILD how to handle C++ Builder projects, but that doesn't help if I can't find the file... hehe)
Are you asking how to build a project via the command line? Make a .cmd file like so:
#ECHO OFF
call rsvars.bat
msbuild.exe MyProject.cbproj /t:clean /p:Config=Release
msbuild.exe MyProject.cbproj /t:build /p:Config=Release

MSBuild: What is it, and when do I need it?

I seem to have missed Day 1 of MsBuild 101. I find myself asking "What does it do, what does it replace, and when do I need it?" since I can just hit F5 and compile my application.
What is the bigger picture I'm missing?
MSBuild is the build platform that enables all build activity in the Visual Studio world.
A better, more practical example would be to state that
The .csproj files (every C# project) are msbuild files
When you hit F5, you basically (oversimplifying) call msbuild.exe and passing in your .csproj file.
MSBuild empowers all the things that make hitting F5 work. From creating the "debug" or "release" folder, to dropping references into the bin\ directory, to invoking CSC ... and everything in between ... MSBuild "powers" all that.
If all you will ever need from a build is the output that F5 gives you, then you know about all you probably need to know about MSBuild.
In most commercial/practical development scenarios, however, there will come a time where there is a need to customize the build process. The most common approach is automating the build process (using either TeamBuild or some homegrown system). You may also need to
create a "packaged" deployment
link to another library outside of your project that is also actively
being developed
publish your build to an FTP and send an email to a customer notifying
them of its availability.
The use of a unified and extensible build platform (ie MSBuild) is what makes all these these possible, while still being part of the build process ... keeping the "build" part of the development pipeline simple and contained.
It's useful when you want do automated builds, and have to implement a build process
The F5 Key Is Not a Build Process and links therein (e.g this) is a good read in that regard.
Also, your Visual Studio project files are msbuild files. If you want to do more advanced stuff when you build (e.g. run a javascript minifier, have more control over autogenerated version identifiers, post processing of files etc.) , you'll have to dig into msbuild.
msbuild is used when you want to build your project from the command line. Whenever you see a continuous integration product that will automatically build your project, it will call msbuild to perform the actual build step.
I think that build servers should have the option to press F5 key in a simpler way than via windows API.
I know this is pretty stale, but here's my take on MSBuild.
It's a scriptable build tool really similar to ANT. They both use XML for configuration, so you'll be able to figure it out fairly quickly. Both have the concept of "Targets" for instance, lots more similarities in thinking, if you know ANT the switch shouldn't be tough.
MSBuild files generated from Visual Studio is really like the generated ANT scripts you get from Eclipse that build your projects, remember your includes and define your dependencies. You can modify them directly for fun and profit.
I like MSBuild, it fixes some of the stuff I find annoying about ANT.

TeamCity - How to create an installer package?

I'm pretty new with TeamCity but have 2-3 years experience with CC.NET-t. I'm familiar with MSBuild but maybe TeamCity has other ways to build things.
I see that TeamCity has a nice UI and great plug-in framework. But I have no idea how can I configure an installer package build.
My questions:
I've checked out the source and built the artifacts (some dll and exe). There is no problem, but
how can I create a zip package "on TeamCity way"? (Project/artifact dependency?)
how can I create a NSIS installer "on TeamCity way"?
Can I download plugins or tutorials? Or I have no other choice just MSBuild?
There are some build runner plugins for TeamCity and you can roll your own but I believe the "TeamCity way" is to do that in your build script... since it's a build server right?
And you might want to check out the MSBuild Extension Pack which has a lot of nice-to-haves stuffs like zipping and registry access and whatnot... which will definitely help with those zip and nsis task.
You probably will need to do this using your own handwritten build scripts.
MsBuild or NAnt will probably offer the best options for you.
If you use MsBuild you probably want to look at Msbuild community tasks.
Hope this helps