We are looking to build a generic task-processing engine for an application. (For example, our app needs to purge old files from archive directories, import new files if they are present, check
states at certain times and send notifications, etc.) We came across System.AddIn and have successfully created it. We can add and remove AddIns just fine. The problem we are having is how best to
update an existing AddIn.
In our design, it is expected that there will be one AddIn for a given "task". We may need to either fix a bug in that task, or update its functionality so that it performs it in a different way. We
need the identification of the AddIn itself (which we use for logging and communication purposes) to stay the same. So, even if we update it, we want the name of the AddIn token to stay the same.
We have tried to do this, but have not had success. We have been able to unload all AddIns, rebuilt the AddInStore, and even recreate the AddIns folder on the file system, all while the host is
running. We have also updated the Version on the AddIn attribute and updated the assemblies version info. However, when it reloads the AddIn, the code being executed is always the previous version.
It will not execute the new code until we restart the host process.
So, our goal is to not have to restart the host process. We want to be able to identify a given AddIn by name, and update it. I have now tried hosting the AddIns in an AddInProcess, however now I am
unable to rebuild the pipeline, and am getting exceptions.
Any advice would be greatly appreciated.