I have a very complex project which uses multiple projects that must be open at the same time for development and debugging. One project is aimed primarily at my host implementation while the other is focused only on the RT target applications.
I use OpenG a lot in both and have lately been getting extremely frustrated at the constant conflicts and recompiling of the same library VIs in OpenG whenever one project or the other is touched. The same issue occurs for other libraries (CCC and CVT to be specific).
Is it possible to have a RT unique set of libraries of these shared components so that these conflicts stop occuring? So that both projects can peacefully coexist in an open state and running VIs at the same time?
it's kind of cheesy but what I have done in the past is make copies of the openG vis libraries I was using under RT, prefix them with an "RT" and stick them right there in a folder in my project directory. Then relink all the instances under RT to those VIs. That would cut down on nuisance recompiles The whole business of having the same VI or god forbid a Class being used under both is a pain and I never do it anymore. Some people will tell you the solution to this is to use "separate compiled code from source". Meh. I have had problems with it in the past and no longer trust it in project that uses RT.
Amazing that after all these years, NI still hasn't cured this type of issue. It all seems so interrelated and fundamentally based on the need for unique VI names in memory (Causing the inability to debug clones, causing conflicting VI instances, constant recompiling, etc... etc...).
I do separate my compiled code but, but not in installed libraries like OpenG. That would truely be a difficult undertaking.
I did try to create my own copies (Postfixed with 'RT') and relink everything and that did work, but that disconnects those RT VIs from the pallette and so forth. It is also a nightmare if the copies use other VIs (Think how intradependent CVT is... yuk). I gave up and just copied the specific VIs block diagrams into my code where the conflicts were occuring.
Funny you mention not to use classes under both at the same time. I've been doing that all along and haven't really run into conflicts other than locking etc. Perhaps it's the way I do it? I have a separate project just for my shared classes. I then pull the classes into each other project. Anytime I modify the classes, I close everything and open just the class project.