I'm getting an "Error 1003 occurred at Open VI Reference in Dist Call Create Installer.vi->Build Application.vi." whenever I try to create an installer for my app.
If the installer generator portion of LabVIEW is not executable it may be because of a dll not being registered. You should try registering it by running regsvr32 on it, the dll (mergemod.dll) should be in the program files\national instruments\shared\installer folder.
If this doesn't work you can try to open the installer generator and see which subVI is not runnable, by openning labview\project\wininstall.llb\Win Install Create.vi.
I have seen problems with this error code be fixed with a control-shift-run arrow on your main VI. This forces LabVIEW to recreate the binary of the VI from scratch for all VIs in memory. Save your Vi afterwards and try to rebuild you executable. This solution may not help, but it is so easy to do that it is worth a shot.
I had already (re?)-registered MergeMod.dll, but it didn't make a difference. I opened Win Install Create.vi and it isn't runnable (several sub-vi's aren't executable) but all of the broken sub-vi's are password protected. What next?
If it is several VIs that have errors (not just their subVIs that have a problem) I assume that they are ones that are in \applibs\distkit\NiMsiDistKit.llb These VIs rely on the NiMsiDistKit.dll that is in the same folder. If it isn't there you should try reinstalling Application Builder / LabVIEW Profession Development System. If it is there (and is version 6.0.4.43) it might be missing a DLL that it is dependent on. If you have a DLL Dependency viewer (like the one with MS Visual Studio) you can check that.
The file is there, and it is the correct version but when I open NiMsiDistKit.llb, I see the same broken run arrow (All MSI DK VIs.vi) and a bevy of password protected sub-vi's that aren't executable. I have Dependency Walker but I'm not sure what to look for when I apply it to NiMsiDistKit.dll?
Dependency Walker will show all of the DLLs NIMSIDistKit.dll is dependent on. There is a tree view in the top but the flat list at the bottom will probably be more helpful. It should show the following dlls (at least on a Windows 2000 system): ADVAPI32.DLL GDI32.DLL KERNEL32.DLL MSI.DLL NIMSIDISTKIT.DLL NTDLL.DLL OLE32.DLL RPCRT4.DLL USER32.DLL If one of these DLLs is missing it will have an error message displayed beside it. I think all of them are regular Windows DLLs so if you are missing one of them your computer might be having other problems. You could try to reinstall LabVIEW to see if it will install a copy of the dll, but you might have to reinstall Internet Explorer or some portion of the OS to get all of them.
Probably the most important dll is the MSI.dll. If it is missing or too old it might be the problem. I have version 2.0 but I think version 1.1 of this DLL will also work. If you don't have the dll or the right version run \applibs\distkit\redist\InstMsiW.exe (if on Win NT/2000/XP) or InstMsi.exe (95/98/ME). This will install/update MSI (Microsoft Installer) on your machine.
You can also press F9 to toggle showing just the filename and the whole path to the dlls. Besides NIMSIDistKit.dll all of them should be loading from your system folder. If not you may have multiple copies of that DLL and the correct one is not being found.