I am stuck trying to upgrade to LV 2019 regarding channel wires. At this point, I almost thought I fixed it but end up crashing LV constantly. I will explain the issues I have had and what I have tried to do to work around them. It would be interesting to know if others have similar issues or ideas how to fix it.
I just installed LV2019 and rebooted PC. "Wohoo, LV 2019 is out, YES! (I thought...)". But when loading my project with about 20 channel wires of different types, many of them were broken and some VIs which contains them showed "failed to compile".
Some channel wire VIs were also broken (Messenger-...Wrap and Unwrap). These have a class as message type.
I tried restarting LabVIEW and loading smaller parts of the code but the issue remained.
I searched and found that one trick was to delete the \ExtraVILib\ChannelInstances folder. I did, but the result was the same. I also see now (not sure if it was from the start) that a few endpoints are missing and replaced with the question-mark VI symbol. Another trick would have been to copy the \ExtraVILib\ChannelInstances folder from LV2018 and recompile, but I'm not sure that is such a good idea so I didn't do it.
I tried recreating the channel writers and readers, but some data types (e.g. a simple error cluster) just creates a channel endpoint of numeric type (default template?). It creates Stream and Tag correctly but not Messenger.
So I tried restarting LabVIEW to just create a VI to recreate the error cluster endpoint. When LabVIEW unloads the VIs, a dialog shows "compiling" on a number of files (happens every time now). After the fresh restart, I could create an error cluster Message writer. But I also have to recreate the Channel indicator as the types don't match. And when I restart LabVIEW and reload the project, the error cluster writer is broken again. So I deleted \ExtraVILib\ChannelInstances again with the intention to one by one recreate the faulty channel endpoints.
(An observation when at this point open a VI with nothing but a typeDef in it is that the dialog that displays that a channel wire is being created for first use displays. The class that the VI is in has a channel wire though, so I guess that is why.)
If I load the project and remove the question-mark VIs and try to recreate the missing channel endpoint, LabVIEW shows a message "LabVIEW could not create the requested channel endpoint. Template: Messenger, Error code: 1051". Another time it showed the same message but error 43!
At this point when I shut down LabVIEW I get an crash report (attached). It is full of Channel wire errors. Opening and closing the project without messing with the channel wires works with no crash report (although the recompile dialog is still there).
I guessed I had to gather the channel data types to manually recreate and start a simple VI and recreate them from there. I did a few and got tired, since I had to make sure not to load anything that would load the incorrect channel wires at which time I would get the dialog that LabVIEW cannot recreate the endpoint. So I ended up reinstalling LabVIEW and rebooted between un-/install and after.
After restart, I opened the code part by part. The channel wire with the error cluster worked. The second searches for <extravilib:\ChannelInstances\Messenger-class'Messages.lvlib-Messages'\Element.ctl> and then pops "LabVIEW: (Hex 0x4A) Memory or data structure corrupt. The file 'Element.ctl' could not be loaded". And If I try to recreate a channel from a typedef I get error 1051 again.
I ended up removing all channel endpoints that were broken, deleted the\ExtraVILib\ChannelInstances folder, deleted all controls and indicators connected to endpoints, and recreated that code step by step. I finished a very small VI with only two channels. But when I "save all" it crashed. If I create a new project and add the class the VI is in, LV crashes too. The class is pretty small, error free, resaved in LV2019. I tried mass compiling: crash. I tried forced recompile: crash.
Any ideas?