FinalBuilder 7.0.0.993 for building .NET 4.5 apps

We use FinalBuilder 7.0.0.993 to compile and unit-test .NET apps.   Recently we have new apps written on .NET 4.5.

In order to compile and test .NET 4.5 apps, we setup a new build server with VS 2010 build agent.  The server has Visual Studio 2012 and 2010 installed. We're not ready to upgrade to TFS 2012 server and agent yet.  

When we apply the FinalBuilder to the xaml workflow, it errors out looking for Microsoft.TeamBuilder.Build.Workflow assembly version 11.  I verified that both version 11 and 10 are in GAC.

 

 In FinalBuilderServer.TeamFoundation.exe.config, we added

Tag dependentAssembly 
    Tag assemblyIdentity name="Microsoft.TeamFoundation.Build.Workflow"  publicKeyToken="b03f5f7f11d50a3a"  culture="neutral" End of Tag 
    Tag bindingRedirect oldVersion="8.0.0.0-9.0.0.0"  newVersion="10.0.0.0" end of tag 
 end of tag dependentAssembly

 

However, it still errors out saying could not find assembly Microsoft.TeamBuilder.Build.Workflow assembly version 11.   Is there a way to make FB work?

Thanks, vt

I’m confused. Are you using FinalBuilder with TFS, or are you talking about FinalBuilder Server. If it’s FinalBuilder, you need to edit FBCMD.exe.config as that is what is run when you use FinalBuilder with TFS.

It is FB with TFS - FB is part of the TFS xaml workflow.  We have custom TFS xaml with FB action.  When we apply FB action in xaml workflow, it breaks. 

 

 

Ok, did you edit the fbcmd.exe.config file and update the bindings? The file should look like this :

[code]<configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="Microsoft.TeamFoundation.WorkItemTracking.Client" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="8.0.0.0-9.0.0.0" newVersion="10.0.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.TeamFoundation.Client" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="8.0.0.0-9.0.0.0" newVersion="10.0.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.TeamFoundation.VersionControl.Client" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="8.0.0.0-9.0.0.0" newVersion="10.0.0.0"/> </dependentAssembly> <dependentAssembly> <assemblyIdentity name="Microsoft.TeamFoundation.Common" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="8.0.0.0-9.0.0.0" newVersion="10.0.0.0"/> </dependentAssembly> </assemblyBinding> </runtime></configuration>[/code]

Can you confirm what version to FinalBuilder you have installed. 7.0.0.993 did not have support for TFS2012 so it shouldn’t be doing any binding redirects. Also, you need to make sure FinalBuilder is installed on the build agent, not just the server.

We tried that config in FB client and see the same error. We also tried GACing the Microsoft.TeamFoundation.Build.Workflow version 11 but still getting the same error…

Thanks, vt

Hello,

Here is more debugging information.

Below is list of programs that we installed on our build server, in the order below:

1.Visual Studio 2012 (version 11.0.50727.1 RTMREL)
2.Team Foundation Server 2010 (30319.01) – for the build agent
3.Final Builder v7.0.0.2056
4.Final Builder Server v7.0.0.350

Our organization is continuing to use TFS 2010, but we want to start building .NET 4.5 apps (i.e. we want to use the framework, tools, etc. that are available in Visual Studio 2012).

Is building .NET 4.5 apps using TFS 2010 a supported Final Builder scenario?

Should the binding redirects installed with Final Builder v7.0.0.2056 point v10.0.0.0 assemblies?
Both the FinalBuilderBuild.xaml and FinalBuilder.TFS.Workflow.dll have references to TFS v11 assemblies, but the binding redirects still point to v10. Is this expected?

Does order matter in the way programs are installed? If yes, what order should the programs be installed?
For example: FB v7.0.0.2056 first, then FB Server v7.0.0.350, then TFS 2010, and then finally VS 2012?

Please let us know if there is any other information that we can provide to help debug this issue.

Thanks,
Eric

Hi Eric

If the TFS templates have references to 11, that suggests you have the TFS2012 client installed. The installer will install the templates and assembly for the latest client installed on the machine. I will take a look today at just installing both into different folders.

Hi Vincent,

You are correct. We have Visual Studio 2012 installed. However, we don’t have TFS 2012 installed. Instead, we have TFS 2010 installed.

In other words, we have a TFS 2012 build agent, and Visual Studio 2012 for .NET 4.5 compiler. Does FinalBuilder work with this setup?

Thanks,
Eric

Hi Eric

Please try this build. We have changed how the TFS support is installed, so it will install the TFS2010 and 2012 support in separate folders.

http://downloads.finalbuilder.com/downloads/finalbuilder/700/FB700_2161.exe

Hi Vicent,

I have the reverse situation. I have VS2012 installed but TFS is 2010. I’ve downloaded your 2161 build and saw the different 2010/2012 folders. I took the 2010 xaml and checked it into my project then defined a new build in TFS based on this xaml.

I’m still having issues similar to the above. I get the following error after queing a build:

TF215097: An error occurred while initializing a build for build definition \BuildTestProject\TestBuildDef: Could not load file or assembly ‘Microsoft.TeamFoundation.Build.Workflow, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a’ or one of its dependencies. The system cannot find the file specified.

This is the same error I received when I was pretty sure I was using the xaml from 2012. Even though I put the 2010 in place and redefined the build the error is the same.

Further more if I open the xaml in VS2012 on my local PC and look through it I find that the “FinalBuilder” task near the bottom has a blue icon and states the following:

The private implementation of active 1.19 FinalBuilder has the following validation error: Compiler error(s) encountered processing expression “BuildDetail.BuildServer.TeamFoundationServer.Uri.ToString()” 'TeamFoundationServer is not a member of ‘Microsoft.TeamFoundation.Build.Client.IBuildServer’.

I first thought this due to 2012/2010 difference but it seems to be the same error for both xaml files.

I am also at a dead stop on getting a TFS based build working. I used the TFSExample project and modified it to call a DelphiBuild. I tested it locally with absolute paths and it worked to build the EXE. Afte loading settings I went and changed the paths to match the original using %SourceRoot% assuming that would becoming from TFS. I don’t think it is getting that far at all.

mark

I’ve also been looking and I cannot even find fbcmd.exe.config anywhere.

Looking into it.

Looks like a bug in the installer, it’s overwriting the TFS2010 files with 2012. Should have a fix available shortly.

Please try this build :

http://downloads.finalbuilder.com/downloads/finalbuilder/700/FB700_2169.exe

Thank you for providing a fix.

However, build 2169 does not resolve the error we’re seeing with the XAML file:

TF215097: An error occurred while initializing a build for build definition … : Cannot set unknown member ‘VSoftTechnologies.FinalBuilder.TFS.Workflow.FinalBuilder.AssociateChangesets’.

Downloaded and installed 2169 on both local machine and on remote build server. After fixing up the config file to the code above and restarting everything I have builds partially working. Now I’m faced with what seems to be a simple problem but I can’t find an easy solution.

For this test I have my FBP7 project as part fo the regular source. When TFS gets everything for the build it marks it read only so when FinalBuilder is run it cannot write back to the project. I’m sure there is an easy way around this but I’m probably just missing it.

I did try making a copy of the build file, putting it in another directory, setting it to r/w since it really doesn’t need to be part of the project source persay but when I tran that build it seemed to mess up the path. IE %SourceRoot% suddenly became something with a “2” in it. IE if my “normal” path was C:\Builds\BuildTestProject… it became C:\Builds\2\BuildTestProject and I have no idea why?

Ok I figured out the “2”. Some idiot created a second build agent. I think that idiot was me… Anyway still have the issue of the R/W project.

How did you get around the error below?

TF215097: An error occurred while initializing a build for build definition [...] : Cannot set unknown member 'VSoftTechnologies.FinalBuilder.TFS.Workflow.FinalBuilder.AssociateChangesets'.

Which XAML file are you using as your build process template in the build definition? Are you using FinalBuilderBuild.xaml? (seet attachment appended with .txt)

Thanks,

Eric

I installed the 2169 on both my local machine and the build VM. I made sure that the finalbuildbuild.xaml was copied from the 2010 directory to my project. Next I had to update the contents of my fbcmd.exe.config with the contents above. I had to restart visual studio and final builder. I then deleted my build definition and recreated it and it works.

We have TFS 2010 but I’m using VS2012. Could that be the difference?