If you use the “Fullpath” to the shared workflows in your Invokes, your project will still direct itself to that location whether you republish it or not. When you publish a project all it is doing is copying the project folder, so when you use the fullpath instead of the relative path, it still calls that location whether you republish it or not. So, in other words, all you need to do is use the fullpath and place the .xaml files in a shared location on your network.
There are also disadvantages to this too, though, like when you update your shared workflow it better work on every project that utilizes it.
But, even then, this is how we are doing it. So, we share the workflows, then use the fullpath in the Invokes, so all you need to do is update one thing and publishing everything is pointless… unless the location changes where you need to make a change in the projects. EDIT: you can also use a fullpath to a settings file where you can edit the filepath locations to avoid this if you desire.
The hard part is trying to get your RPA team develop with modularization in mind. Too many times, you tell an associate that you already developed a piece, only for them to make a copy of it rather than just calling it with arguments or requesting updates to work with their projects.
There is an alternative method that is built in, where you can make an update then each project that uses it, needs to upload the update then republish again. It’s probably more stable that way, but I think it’s not that efficient or flexible. Also, I’m not very familiar with that mostly because it requires IT to set something up and needing to republish tons of projects eventually everytime an update is needed… scares me
Over time, I’m sure “best practice” on all this will evolve.