Thursday, March 22, 2012

Custom Task Deployment

Hello All,

We have developed some custom tasks which we currently deploy the standard way. That is, we install the custom task assemblies in the DTS\Tasks folder and we also install the assemblies in the GAC. Due to some deployment practices we are trying to implement we would like to be able to remove the assemblies from the GAC and install them in some other location. I have tried installing the assemblies in the DTS\Binn folder, but this does not appear to be working. When I drop the custom control flow tasks onto the package's control flow tab I get the "Cannot create a task with the name ..." error.

Is it possible to not have the custom task assemblies in the GAC? Are there any tricks to getting it to work?

FYI, our assemblies are signed. I'm not sure if that has anything to do with our troubles.

Thanks,

Rob

1234123412 wrote:

Hello All,

We have developed some custom tasks which we currently deploy the standard way. That is, we install the custom task assemblies in the DTS\Tasks folder and we also install the assemblies in the GAC. Due to some deployment practices we are trying to implement we would like to be able to remove the assemblies from the GAC and install them in some other location. I have tried installing the assemblies in the DTS\Binn folder, but this does not appear to be working. When I drop the custom control flow tasks onto the package's control flow tab I get the "Cannot create a task with the name ..." error.

Is it possible to not have the custom task assemblies in the GAC? Are there any tricks to getting it to work?

FYI, our assemblies are signed. I'm not sure if that has anything to do with our troubles.

Thanks,

Rob

Unfortunately (for you) they are required to be in the GAC.

-Jamie

|||

It makes sense (standard .Net assembly loader stuff), and as indicated in the post below , the assemblies can be loaded from the execution host directory as well. It is not documented, and probably not supported either. I know that the designer uses the DTS\ObjectType folders, so have you tried it in DTS\Task and DTS\Binn at the same time? If so and it still does not work, then why not try the supported/documented method ;) In theory the designer only requires the DLL in the DTS\Task folder, the GAC is used at runtime.

The only other reason for the error, is that the assembly you are trying to add, as stored in the toolbox "metadata" is no longer the assembly you actually have. Maybe clearing out the toolbox will help. If you changed the strong name, then you will have to fix up any packages and also sort out the toolbox.

Re: Custom SSIS Task Deployment - MSDN Forums
(http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=803910&SiteID=1)

Why not install them in the GAC as usual?

|||

Our issue is that we have several data access layer assemblies which are shared by our custom tasks and some web applications. The problem is that on several of our developer machines we are having build problems when building the web applications. We get error messages when we try to register the assemblies in the GAC. It has something to do with the ASP.Net worker process "locking" the assemblies even though the web application isn't running.

I haven't been able to get the custom tasks to work if they aren't in the GAC, but since the web application/GAC issue is just with the DAL assemblies it is really the DAL assemblies that we want to avoid putting in the GAC. I am able to put the DAL assemblies in the DTS\binn directory and keep the custom task assemblies in the GAC. This solves our problem.

Thanks for your repsonses.

No comments:

Post a Comment