BTDF project fails to install after TFS build

Topics: General Questions, Server Deployment
Dec 13, 2012 at 9:16 PM

Howdy, sorry that this post may end up a bit vague, but in the process of troubleshooting the build it deleted my c: drive of my development environment so I don't have access to the details of my problem.

I'm running the most recent release.  Basically, I had a test BizTalk 2010 project that deployed perfectly via the BTDF--both the direct deployment and the generated msi worked in VS2010.  Our goal is to implement gated check-ins in TFS, so I followed the documentation for setting up BTDF builds in TFS and the builds have been working fine also until I tried installing the msi.  The initial installation seemed fine and I opted to do the BizTalk installation afterward, but it keeps erroring out.  It goes through a bunch of file copies and then I get an error to the effect that the DELETE could not be loaded in the microsoft.sdc.tasks.biztalk.dll because the assembly could not be found.  Sure enough, it is not there.  I checked the .target file that complained and it was on line 187 (it's funny the things I do remember) where there is a delete command something like DELETE $(outputdir)/**/*.*

Since it was complaining about the BizTalk dll, I took a look at the Tasks file and the tasks file that is generated from the TFS version of my build has a bunch of references to microsoft.sdc.tasks.biztalk.dll even though the one that is created locally has no such references.  Being the smart guy that I am, I figured that I would test it by removing the BizTalk references since the command seemed to be more directed to an OS delete.  Well it worked beautifully, but it seems that DELETE $(outputdir)/**/*.* somehow means DELETE c:/*.* because I lost half my hard drive before I realized what was happening.

So I guess the big question is whether the microsoft.sdc.tasks.biztalk.dll references should be there, and if so, where is that file supposed to come from?  If it isn't supposed to be there, is there something that I have misconfigured?

 

Thanks,

Wade

Coordinator
Dec 15, 2012 at 6:01 AM

Hi Wade,

Very sorry to hear that you had a run-in with del c:\*.* while working on this issue.  If $(outputdir) is undefined when you run the script, then what you are left with is DELETE /**/*.*.

Did you install the Deployment Framework on the TFS build server?  The file Microsoft.Sdc.Common.tasks in <ProgramFiles>\MSBuild\DeploymentFrameworkForBizTalk\5.0 defines the MSBuild tasks imported from the SDC DLL's... and all references to Microsoft.Sdc.Tasks.BizTalk.dll were removed between 5.0 RC2 and the final release.

I'm almost certain that you have an old Deployment Framework installed on your build server.

Thanks,
Tom

Dec 17, 2012 at 4:46 PM

 

Ahhh, yes of course, I should have thought of that.  The build server was in place before I came on the scene and does have the old version.  That makes me feel much better.

As far as the outputdir, how is that set?  I was setting an output directory as part of my build definition on TFS and the build was showing up in that location.  Of course the build that deletes the files is part of the installation and not the actual TFS build, so I'm not sure when that value gets set.  I definitely need to get that part nailed down because losing production servers during an install of a BizTalk app is not an option =)  From what I remember looking at the build script, I thought there was a check to see if outputdir is an empty string....

Thanks,

Wade

Coordinator
Dec 19, 2012 at 5:52 AM

First of all, it's essential that you upgrade the build server so that the BTDF version is the same as your development machines (which should all be the final 5.0 release).  I'm assuming that you've done that.  So the build having the issue is a TFS build that is configured to actually deploy the app MSI to a server, while the MSI itself is being built successfully by another build?

If you have not followed the steps in the documentation to upgrade/update your .btdfproj file for the final 5.0 release, then please do that right away too.  That is very important for the TFS steps contained in the documentation.

In versions prior to 5.0 final, there was a delete step that could cause a mass delete if the OutDir property was not set -- but the only time that executed was during MSI creation (Installer target).  That step has been removed entirely for 5.0 final.

I'll need to know more about this other build configuration.

Thanks,
Tom

Dec 19, 2012 at 3:12 PM

I was able to get everything updated and did see that the delete statement has been changed.  The install is now working like a charm.

Thanks for such a great tool and your help on this issue!

 

Wade

Coordinator
Dec 19, 2012 at 4:27 PM

Great to hear that Wade.  Thanks for the update and positive feedback!

Thanks,
Tom

Jul 17, 2013 at 1:01 PM
Hi Tom,
I am recieving below error when I run MSI from powershell script)Sprinkler).
Below is the property group configuration.
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<DeploymentFrameworkTargetsPath>$(MSBuildExtensionsPath)\DeploymentFrameworkForBizTalk\5.0\</DeploymentFrameworkTargetsPath>
<OutputPath Condition="'$(TeamBuildOutDir)' == ''">bin\Debug\</OutputPath>
<OutputPath Condition="'$(TeamBuildOutDir)' != ''">$(TeamBuildOutDir)</OutputPath>
<DeployPDBsToGac>false</DeployPDBsToGac>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
<DeploymentFrameworkTargetsPath>$(MSBuildExtensionsPath)\DeploymentFrameworkForBizTalk\5.0\</DeploymentFrameworkTargetsPath>
<OutputPath Condition="'$(TeamBuildOutDir)' == ''">bin\Release\</OutputPath>
<OutputPath Condition="'$(TeamBuildOutDir)' != ''">$(TeamBuildOutDir)</OutputPath>
<DeployPDBsToGac>false</DeployPDBsToGac>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Server'">
<DeploymentFrameworkTargetsPath>Framework\</DeploymentFrameworkTargetsPath>
<!-- Get our PDBs into the GAC so we get file/line number information in stack traces. -->
<DeployPDBsToGac>false</DeployPDBsToGac>
</PropertyGroup>

MSI is installed but not GACed or deployed. Please suggest.
Abhishek
Coordinator
Jul 17, 2013 at 5:18 PM
Hi Abhishek,

I don't see any error message here.

Tom