11-05-2013 12:18 AM
Why do i get a error -41 in Application-Builder?
This is my complete errormessage:
CDK_Build_Invoke.vi.ProxyCaller >> CDK_Build_Invoke.vi >> CDK_Engine_Main.vi >> IB_MSI.lvclass:Build.vi >> IB_MSI.lvclass:Engine_BuildDevPart.vi >> CDK_Engine_AddFiles.vi >> NI_MDF.lvlib:MDFBuildDevPart_AddFile.vi
D:\Projekte\MAI\MAI-Database-Connector\MAI-Database-Connector_1.0.0.25_stable\1_LabView\Quelle\Config
Dateien zum Installer hinzufügen
**************
*** Fehler: Es trat ein unbekannter interner Fehler auf. (Fehlercode -41)
**************
*** Fehlerdetails:
MetaToolbox: Error in MetaToolbox::StrictPath::Assign function
Path has invalid character at index 6: Config:\
*** Ende des Fehlerprotokolls
**************
**************
*** Fehler: Eingangsdaten einer Quelldatei enthalten Fehler. (Fehlercode -33)
Fehler beim Hinzufügen der Datei MAIconfig.ini
**************
*** Fehlerdetails:
Error in MDF API function: _MDFBuildDevPart_AddFile
Invalid absolute path specified in MDFBuildDevPart_AddFile: Config:\
*** Ende des Fehlerprotokolls
**************
Prüfen...
Dateien werden kopiert...
Dateien durchsuchen...
Dateien aktualisieren...
Build erfolgreich erstellt.
Hinzufügen von Dateien abgeschlossen
My LV-Vers.: 13.0f2 32Bit
11-14-2013 10:01 AM
Hello,
do you get this error, if you build an .exe or installer? Are you able to build one of them or do you get this error either way?
Cem Yalcin
National Instruments
08-26-2014 06:28 AM - edited 08-26-2014 06:45 AM
In the error message quote it somewhere says "Installer". I also have this problem now. The app builder creates the DP package in the temp folder, which includes all compiled files, but does not create the full installer. So the part of the error log where it says error -33 is actually nonsense, because the mentioned file is actually added. Worst thing is, the end of the message says "Build successfully created" - huh?
Mine is like that:
CDK_Build_Invoke.vi.ProxyCaller >> CDK_Build_Invoke.vi >> CDK_Engine_Main.vi >> IB_MSI.lvclass:Build.vi >> IB_MSI.lvclass:Engine_BuildDevPart.vi >> CDK_Engine_AddFiles.vi >> NI_MDF.lvlib:MDFBuildDevPart_AddFile.vi S:\Entwicklung\Alle Fertigungs- und Entwicklungsdaten\User Software\Aktuell\LV_IF_UTA12_Sequence_Tool Informationen zur Softwareverteilung laden Dateien zum Installer hinzufügen ************** *** Fehler: Interner Fehler. (Fehlercode -40) ************** *** Fehlerdetails: MetaToolbox: Non-absolute path '' passed to MetaToolbox::StrictPath::GetVolume *** Ende des Fehlerprotokolls ************** ************** *** Fehler: Eingangsdaten einer Quelldatei enthalten Fehler. (Fehlercode -33) Fehler beim Hinzufügen der Datei example.xls ************** *** Fehlerdetails: Error in MDF API function: _MDFBuildDevPart_AddFile Invalid absolute path specified in MDFBuildDevPart_AddFile: *** Ende des Fehlerprotokolls ************** Prüfen... Dateien werden kopiert... Dateien durchsuchen... Dateien aktualisieren... Build erfolgreich erstellt. Hinzufügen von Dateien abgeschlossen
I think that "Invalid absolute path specified in MDFBuildDevPart_AddFile" is the main problem, probably "MetaToolbox: Non-absolute path '' passed to MetaToolbox:: StrictPath::GetVolume". What is an invalid path to the app builder? It is not the path length from highest callers to lowest VI/file.
08-26-2014 07:21 AM - edited 08-26-2014 07:23 AM
Addtion: the reason is found, but it's not clear, what causes it and how to solve it, so it works as expected.
What did I do? The main VI shall be compiled and for the *.exe it need three files (1x CSV, 1x XLS, 1x PDF) in the \data folder. So I added those three files to the project. It now has one VI and the other three files. When creating the *.exe, it works fine. The *.exe is compiled in the target folder, the subfolder \data is created and the three files are copied there. So the *.exe runs fine,
Now, when creating the installer, it fails when adding the first of those additional three files. If I setup the whole project NOT to use the three additional files, I can create the installer to the end.
Problem is, even if the three files are not added in the build settings for the *.exe and thus not in the build settings for the installer, the installer build process will add them because they are in the project. I had to completely remove them from the project to be able to build the full installer.
I call this a major bug in the app builder.
08-26-2014 07:40 AM
For better understanding:
The installer build process will add the three files, no matter if the are used in the build settings or not. I thought, perhaps they are not allowed to be in the same path as the VI to compile. So I created a subfolder and put them there. Then I dragged and dropped them again to the project and this time it compiled the installer to the end.
Conclusion: hours wasted finding this out. There is no plausible reason why the installer builder would fail if the additional files are in the same folder as the VI. Doh!
08-26-2014 11:21 AM
If it's possible, could you attach your code so it can be reproduced?
08-27-2014 03:14 AM
My code? Why? This was about the location of files when building an installer. The three files failed to be built because they first were in the same folder as the main VI and the project file. When moving the three files into a subfolder named \help, it worked. Just a nasty bug of the app builder, which you simply need to know and keep in mind.
The app builder is a red rag to me, anyway. The same application, when built in LabView 8.5, created a ~12MB installer. The exactly same thing with LabView 2013 makes it 206MB!!! Just because of runtime and VISA. You may now ask "Why not use 8.5 then?" I'll tell you: Problem was, the *.exe always crashed (Windows 7 32 bit) when built with LabView 8.5 app builder. Originally, the application was created and compiled in LabView 7. Somewhen in the past years someone saved them with LabView 8.5 and no going back anymore to LabView 7, which was the best we ever had for small and fast applications. LabView 2013 can save backwards down to 8.0, but the 8.5 can't do the same for 7.
08-27-2014 08:45 AM
I apolgize for not being clear. I should have said that if you can attach example code (which doesn't necessarily have to be your code) that reproduces the issue, that would help in our debugging the problem. I am not aware of this issue being reported so we'd like to make sure we track down a possible bug and correct it. Also, there are log files that are created in the TEMP directory which could help debug the issue. If you look at %TEMP% (on a Windows machine), there will be a file named "*_build.log" (where the name of the project and build specification name will be part of the filename). If you can attach that log file, that will help with the debugging.
I have attached code that where I attempted to reproduce your issue with the information from your post. I was able to successfully build and EXE and Installer. Please take a look at the code (saved in 2013) to see if that accurately represents your setup.
08-27-2014 09:55 AM
Ok, got it. Your test projects works, yes.
Mine does too, even if I reconstruct the situation from yesterday, when it didn't work. I think this might be coming from the project file and the VIs being saved in 8.5. before, then opened in 2013.
The build log above says something about wrong input data of one of the additional files.
However, it is solved now and actually no one knows exactly what caused this. Thanks for the support.