Biztalk 2009 and Team Foundation Server - Change in Deployment Properties.

I had an interesting case recently. Customer was using Team Foundation Server with Biztalk 2009. He mentioned that in the earlier versions of Biztalk he was able to specify the deployment properties just once and share it across multiple developers.

After some research here is what we found. Earlier we had our own project type and had everything in a single file. In BizTalk 2009 onwards we have two files for biztalk projects(which is the correct behaviour): one is btproj and other is .btproj.user file.

All build related information required at the time of build and expected to be shared between developers are kept in *.btporj file and all user specific properties are kept in *.btproj.user file which is not supposed to be shared. For example in Schema properties like :

Input Instance File Name , it varies from one user to other ConfigurationDatabase: it again varies from one user to other. Same with other properties.

 I don't think there is any direct workaround for this, I can't ask them to checkin user file ( which ideally they should not do) because in 2009 release we save full path for any artifact in user file which is used to map properties between *.btproj and *.btproj.user file. Copying whole project directory/files from one place to another will break mapping and you will be back to the same problem, no properties for an artifact in btproj.

Note: *.btproj always save relative path , so we don't have any problem there.

 If users really want a workaround then they have to first change full  path to relative path( relative path to btproj file) of that artifact in user file for ex:  <File Path="Schema2.xsd">. Now they have to checkin this user file in their TFS server which will be used by all users.

Thanks to Saurabh Sharda for his valuable input.