tfs deployment error

Topics: Server Deployment
Oct 22, 2011 at 12:53 PM

Hi Everybody,

I am usign BTDF for the fist time..I am gettign this error during tfs build.

 Importing from SettingsFileGenerator.xml...
  Output format is XmlPreprocess (multi-file).
  Exporting to local_settings.xml...
  ERROR: Access to the path 'C:\Builds\2\CoreServices\...\EnvironmentSettings\local_settings.xml' is denied. any pointers?

thanks ,


Oct 22, 2011 at 6:42 PM

Hi and welcome,

Looks like you maybe checked files in EnvironmentSettings into source control, or at least they ended up read-only.  Only SettingsFileGenerator.xml should be in source control from that folder.


Oct 23, 2011 at 6:45 PM

Thanks Tom.. I got past through that error. I have a basic question what happens when the tfs builds the .btdf project. Where do i specify the name of the Biztalk server where the msi needs to be installed.

Things i have done so far.

Created a tfs build from the default template and added the biztalk solution and the btdf project to it.. For the moment i have disabled masterbindings and want to use the port binding files directly for binding.

I am getting error :

Its trying to create the folders specified inside the portbindings files on the tfs server ..

I get error saying:

The "GetBizTalkAppExists" task could not be instantiated from "C:\Program Files (x86)\MSBuild\DeploymentFrameworkForBizTalk\5.0\DeploymentFramework.BuildTasks.dll"


Parameter name: strDBServer

Looks like i need to set the biztalkmgmtdb names somewhere so that it can perform the GetBiztalkAppExists check on it ..but where do i specify those values .Apart from installing to the biztalk server it also needs to be Gac's the assemblies. where do i set all these values.

your help is highly appreciated.





Oct 24, 2011 at 2:42 PM

I resolved this error by making changes to the default template to run wix installer against the btdf project. I made the change to turn the outputdirectory to "" for both non -btdf and btdf projects ..So now the build is going fine.. but where are the msi supposed to be placed. When i looked into the drop location there was nothing expect the log folder ?Any pointers


Oct 24, 2011 at 6:22 PM

You should be running your build against your .btdfproj and calling the "Installer" target.  That will produce an MSI.  There are some other blog posts and discussion posts here about configuring things under Team Build.  Here's one with a few links.  I'm not sure why you'd want to clear the output directory (not sure exactly what MSBuild property you're referencing though).


Oct 24, 2011 at 10:48 PM

Yes I exactly did what was mentioned in that blog..When i said "turn the outputdirectory to """ I meant I didthe below step from the blog.

"Change the OutDir property to “” to output the binaries into the bin folder in the source directory."

I have applied all the steps from that blog.I am not sure if the proj file needs to be updated to  specify anything.

Please advise.

Oct 27, 2011 at 3:10 PM

Currently (5.0 RC2) the Deployment Framework project will still build to its own relative bin\Release folder, so you should find the MSI there.  You could conditionally override the OutputPath property if you want to change where it ends up.  You'll find two conditional PropertyGroup's in your .btdfproj already, and that's where you'd want to do the override (probably in the Release group).  If you're using the upgrade template in Team Build, I recommend setting CustomizableOutDir to true (a Team Build property).  That effectively does the same thing as setting OutDir to "" but is built into TFS.  When you do that, you get another property named TeamBuildOutDir that has Team Build's output path.  You can conditionally use that property where I was describing above.  If you're using the WF template, it's a little different but same idea.  You just need to edit the MSBuild properties instead to set TeamBuildOutDir instead of OutDir.

The final version of 5.0 will use OutDir for the MSI and will also have a predefined conditional property for TeamBuildOutDir in the .btdfproj template.