I’m using TFS 2012 Preview for a project my friend and I are working on.
I’m working on the solution and it compiles just fine, I check it in. He pulls the solution and it has all sorts of errors. This isn’t the first solution I’ve worked on with this type of thing happening.
The solution is large with many projects (N-Tier) including an MVC application, an SQL Database Project , Workflow activity libraries, a project for the Entity Data Model, etc.
I’m wondering if there are some kind of guidelines checklist, or option to ensure all configurations, assemblies, databases, entity models, etc are included with the check-in to ensure the solution compiles on the other end.
I’ll formalize JeffN825’s answer by suggesting setting up a build for the solution that is triggered as a gated check-in.
This means that the changes are submitted to the build server and built there before the change set is actually committed. If the build fails, then you will be informed and the changes will be left checked out. This way, you ensure that the solution builds in a fresh environment.
This page provides a simple build setup guide. Gated check in is configured in the Trigger section
Worth to note is that if your build process requires 3rd party SDKs etc on the build computer, then you might have a hard time building using the standard Team Foundation Service build controller. You need to make ALL dll’s etc required by the build process part of the workspace in source control and ensure that the projects knows where to find them.
NuGet is an excellent tool to ensure that everything you need is included and made available to the build server. If what you need is available as a NuGet package, I strongly recommend to use that option instead of installing it as an SDK.
In many cases, though, you’ll need to have control over the build environment. In that case, it might be worth looking into how to run your own build server as a VM hosted on Azure, which enables you to install those pesky 3rd party SDKs by way of Remote Desktop. This blog provides basic information and some nice links providing further guidance.