As far as I know, there's no simple way to do this. When I've faced with similar problem, I've developed a small utility -- SetupMDB -- that make necessary changes in MDB (I can upload it on your request). Then I've used Inno Setup (www.innosetup.org) to make fully-featured SETUP. This SETUP let used to select PI Server and location for ACE DLL. Then (with help of SetupMDB) MDB was filled with ACE data, and new module appear in ACE Manager. Then I add context manually, but this also can be automated in some way.
I think that this also can be done using regular MS Installer, but I prefer use InnoSetup - it's simple and very powerful tool.
I am Also facing problem to deploy Class Library on PI server.
I tried it in different way. I did the calculation in Visual Studio And It will create Class Library inside C:\Program Files (x86)\PIPC\ACE\ClassLibraries
I copy the same class library from C:\Program Files (x86)\PIPC\ACE\ClassLibraries And past it in Class library folder of PI server. ie C:\Program Files (x86)\PIPC\ACE\ClassLibraries And Add the necessary context inside ACE Manager.
But I am not getting proper result of Calc. Daily I need to recalculate it from ACE manager. to get proper result.
Just a couple of questions:
- Are you seeing any errors in your logs or ACE Manager?
- Do you have any other calculations? If so, are they experiencing the same issues?
- If the recalculation is successful, I would consider re-registering the calculation with ACE. Have you tried this? If so, were there any errors?
- How is your calculation triggered, is it clock-based or is it based on a tag? If it's naturally triggered, does changing it to clock-based help?
This seems like an issue that might be best handled by techsupport.
This is a clever approach I like that!
This is however not for everyone since it requires to master the tool, and you also need to know exactly what needs to be done on the node where you install and how to update the MDB correctly, so there is a small risk of breaking things.
Having this said, this is a good automation strategy for someone who publishes ACE Class Libraries regularly.
We have a an existing KB article that explains how to proceed to manually do that, you will have to adapt it to create the MSI you want:
KB00307 - How to move PI ACE calculations from a development computer to a production computer
Make sure to set to AssemblyPath property to the right value on the target production server in case you put the dll in another directory:
Then before you start the PI Ace scheduler service, make sure you start a command prompt to see logs continuously:
:: THIS IS THE MOST HELFUL COMMAND YOU CAN USE WHEN TROUBLESHOOTING PI ACE SCHEDULER
:: THESE COMMAND MUST BE EXECUTED ON THE SAME BOX AS THE PI ACE SCHEDULER
:: 1) get into the proper directory
:: for an application server
cd /d "%pihome%\adm"
:: if this is a PI Server
:: cd /d "%piserver%\adm"
::2) then start the continuous logs
Hope this helps!