I have problem with AF plugins, when upgrading them to a higher version.
What I am doing to do it right:
- new assembly contains higher version number
- i am deregistering the old dll first and then register the new
- I am registering all the assemblies (aka CustomDataReference1.dll , CustomDataReference2.dll, Base.dll with /owner CDR1 and again Base.dll with /owner CDR2)
- I am using /owner parameter when registering, to be sure, that AF server knows the dependencies.
But sometimes the client machine refuses to update its plugin folder and it is needed to delete "C:\ProgramData\OSIsoft\AF\PlugIns" to force the update of the plugins.
This is happening to base dlls usualy.
Any sugestions how to handle this? I am prepared to implement a static method in Base.dll, which will periodicaly check the dll versions at server and when it detects frozen version at client, it shows a MessageBox with message to delete AFPlugins cache.
I dont like this solution, I would prefer something more automatic and more clean. Something like "PISystem.Refresh()", which would check the assemblies version at server and downloads them if needed.