I used your build template in my environment and got the same error when the assembly was installed in the GAC and NOT in a folder used by the controller. When the assembly is in a folder that the build controller
searches, the build works. Apparently, the TFS build system is relying on the custom assemblies to be in the shared folder. I actually hadn’t tried to do the build using only the GAC. I only used the GAC for build template creation and then removed from
the GAC for testing within the build process.
You say that you’re not able to update the custom assembly path for the controller. Either I don’t understand the real reason around why this is an issue or possibly you’re missing how the custom
assembly capability is intended to be used. The location that you point to within the build controller can be a folder within any team project inside of TFS. Within the environments that I work with, I actually create a special “shared” team project
where I can create folders to hold all of my reusable build templates and another folder to hold all of the custom assemblies that could be used in the builds. This way they’re not attached to any specific project and I get more reuse out of the templates
and activities. This shared team project is also where I can do development for some of the custom assemblies that are used by more than one team project.
So, hanging off of the shared team project are 2 folders “BuildProcessTemplates” and “Custom Activity Storage” and I use them to manage the templates and assemblies. The build definitions
that you create in other team projects can access and utilize the templates in this location. The build does not require that templates exist within the team project where the source code being built exists.
Even if you don’t want to create a shared build template location, you still can share the assemblies in this manner.