But this time its different because I can reproduce it and demonstrate it.
So I have a large project with several libraries and classes. I've been updating code and in doing so added a new library. After adding the new library my application no longer can be built. It returns an error stating "Cannot save a bad VI without its block diagram." I open the VI and of course it isn't broken. I performed a mass compile but still no build. So I start a binary search disabling parts of the code until it starts working again.
I was able to isolate it down to a single spot where I have a false constant, wired to a case structure that either calls a VI in the TRUE case, or does nothing in the FALSE case. If I disable this code it builds fine. If I turn the constant into a control it also works fine. This makes me believe there is a problem with constant folding and removing a part of the code that it think it needs.
I played around a little more and with my minimized project I could get it to work by doing things like Disconnecting Type Defs in the application builder settings, but this didn't fix it in my larger application.
But one thing I noticed that did fix my build in both the full application, and the smaller test one is adding the LabVIEW band-aid "Always Copy" between the boolean constant, and the case structure.
So NI can you look into why this build fails, and try to fix it assuming I haven't done anything wrong. This issue has been seen in LabVIEW 2012 SP1, and 2013 SP1 in Windows 7 x64.