1

Closed

Workflow Designer encountered problems with your document

description

Hi,

I just finished with the installation of NuGetter on my Build Server.
The Build Controller has a "CustomActivitiesStorage" where the NuGetter's dll reside.

On my laptop, i registered the "TfsBuild.NuGetter.Activities.dll" file so that i can use it with the Process Template editor in VS 2012. On my laptop, everything load just fine. I can add activities to the template and even checkin afterward.

What's weird is that, if i open the "NuGetterMultiPkgBuildTemplate20.xaml" file on the VS 2012 of the Build Server, i get this error:
   * Workflow Designer encountered problems with your document
Something about invoking the constructor on type "'TfsBuild.NuGetter.Activities.NuGetterProcess".

I made a test on the Build Server:
1- when i register the dll in the gac manually.
    - Got the error
2- when i unregister the dll in the gac and then try to open the template again.
    - The template open with a red activity that could no load.
So, it's obvious that i need to register the dll in the GAC for the Build Server if i want to be able to edit the xaml template on it.

But, on the Build Server, i can't load the template in VS..

I already use another template activity called "VersioningBuildTemplate20.xaml" which use a custom activity called "TfsBuild.Versioning.Activities".

This template loads ok on the Build Server and i seem to be able to drag-n-drop the NuGetter activity on this template..

Any ideas ?
Closed Mar 26, 2013 at 1:10 PM by marknic
Haven't heard back in a while so assuming the response satisfied the issue.

comments

marknic wrote Mar 12, 2013 at 2:40 PM

The problem on your build server is most likely because once an assembly is loaded into a process it can't be unloaded (unless you do some hoop jumping with application domains which aren't being done here). The build controller/agent is a process that loads the NuGetter assembly and it will hold onto it until you reboot your machine OR (easier) you can restart your controller.

Once a build is kicked off, the NuGetter assembly will be loaded by .NET and won't unload. So, if you want to use the assembly out of the GAC then you will need to make sure it isn't loaded by the controller/agent. Again, restarting the build controller is the easiest way to do that.

This is a constant issue when trying to create and test a workflow custom activity as you always have to manually unload the assembly or when you run your test, you will be using an older version still resident in memory.

This is all because of .NET process requirements.

Hope this helps,

Mark