I am working with team city for CI and very happy with it. I use it to build from Tfs and build my code. As a newbie, I have some questions.
I have a version info that my app uses for version number. How can I increment this on each build?
I run code analysis and style cop analysis against my code. The settings file for these are located outside of the solution as they are shared across multiple solutions. How best can these be referenced for the builds? Can a directory where they reside be pulled with the source code to build?
is there any way to generate a release notes document after each build pulled from tfs checkins?
I use the build number in my version numbers. So I locate the place where the version number is defined and append the build number to the existing version number. You might try more fancy variants of this...
Use multiple VCS roots. Have your common settings and build infrastructure be in one VCS root that gets overlayed onto your code VCS root.
This one would very much depend on your requirements for the release notes. What I currently do is that I store a reference version id (e.g. git revision hash, p4 revision number or such in my build framework that represents my last release, then use whatever the revision control system offers me to generate the list of changes in my current release that are not in my previous release. This can often be more complex than people might think at first, and depends also a lot on your branch and merge policies. See also http://blog.fortified-bikesheds.com/2011/12/why-is-it-so-hard-to-collect-release.html