PDA

View Full Version : Error loading action List


smckeown
05-01-2007, 04:25 PM
Hello,

When I try to start VBP, I get the message "Error loading action list: The system cannot find the file specified."

I searched these forums for a a fix and the only hits I found were unsetting a macro and reinstalling VBP.

Is there another solution? Seems like a reinstall for software that was working until I exited is heavy handed.

Thanks,
Sheryl

kinook
05-01-2007, 04:44 PM
It sounds like a reinstall is needed. That error would only occur if some registry settings or files installed by VBP got deleted somehow.

smckeown
05-01-2007, 06:01 PM
Thanks for the reply.

I reinstalled the software and that 'fixed' the problem in that VBP would start again.

But, as soon as I ran my script, I got an error about the UI. I saved and exited, and now I cannot start VBP again.

I am getting the same "Action" error as before.

Here is the part of my script that is new.

<step action='Group' type='0'>
<description>whomp directories and general clean up before get and build</description>
<name>pre build cleanup</name>
</step>
<step action='Process Files' type='0'>
<FileExtensions><![CDATA[*.dll
*.ocx]]></FileExtensions>
<FilePath>%WORK_ROOT%\bin</FilePath>
<description>Locate all executable files, excluding those we know are not COM dlls</description>
<indent type='3'>1</indent>
<name>unregister dll and ocx files</name>
</step>
<step action='COM Register' type='0'>
<Filename>%PROCFILES_FULLPATH%</Filename>
<ShowCmd type='11'>-1</ShowCmd>
<Unregister type='11'>-1</Unregister>
<description>Register the matching file</description>
<indent type='3'>2</indent>
<name>unregister it</name>
</step>

Any help is appreciated.

-Sheryl

smckeown
05-01-2007, 06:05 PM
Also, I took out the part of the script in my previous post AND then re-registered all the DLL in the VBP directory, and VBP started up again.

The plot thickens.

kinook
05-01-2007, 06:53 PM
It sounds like that unregister step (or something in the build) is deleting the registry key HKEY_LOCAL_MACHINE\SOFTWARE\Kinook Software\Visual Build Professional 6\Actions. That key and several subkeys are required for proper operation of VBP.

smckeown
05-02-2007, 01:06 PM
Thanks for the reply.

I saw the reference to that registry item in another post. That item did not exist in my registry.

Here is how to reproduce the problem on my box. (No registry magic required.)

...Everyone's mileage may vary...

== To Reproduce ==

1. Create a script with steps to unregister all DLLs and OCX in a registry (see the XML from my previous post or use the VBP VB sample build script)
a. Create a "process files" step with the include filters *.dll, *.ocx. No exclude filters.
b. Create a step under process files step
2. Highlight the two steps and select 'Rerun selected' (I later read in the help this is not support for this type of action.)
3. When the steps are run, the unregister may pass or fail. (This isn't the test, just a note.)
**4. Double click on any step in the VBP script.
**5. See the error "Error initializing action's custom UI components."
5a. At this point, no steps can be edited in the VBP application because double clicking any step generates the UI error.
6. Save the script and exit.
7. Start VBP, see the action step error

== OK, my fix ==

1. Change to \program files\visual builder pro and re-register all DLLs in that directory.
1a. I use the shell command executed from the VBP install directory "for %f in (*.dll) do regsvr32 %f"
1b. Some DLLs don't register. This is expected.
2. Restart VBP and the startup action error and the UI error on edit no longer appear.

Note: Repeat steps 2 -5 from the first example to see the error again. Repeat the fix to get VBP to run again.

Note: You don't even have to exit VBP to get VBP working again. Just hop over to your command prompt and re-register the VBP DLLs. Then double clicking on an action step works as expected without any errors.

== My hypothesis ==

After I saw re-registering the DLLs 'fixed' VBP, I wondered if trying to unregister my DLLs was causing the VBP error.

Debug Step:
1. Under the iterative file step, before the unregister, add the step to log the globals that the iterative file step support. (procfiles_count, procfiles_fullpath, procfiles_root_dir).
2. Highlight the iterative file step and the log step and rerun. (I still didn't know this wasn't supported yet.) My log file had NOTHING for the supported global variables.

This lead me to think that the when using the 'rerun steps' feature, the globals are not expanded, however the unregister is still executed. My guess is then that since the globals are not expanded, the unregister command looks in the directory the process was executing in (the visual builder pro directory) and unregisters and DLLs and OCXs in the process directory. But this is just my guess.

== Workarounds ==

I tried excluding the VBP DLLs on the iterative file step, but the DLLs would still get unregistered.

I then read the help and saw where the 'Iterative' file steps can not be tested with 'rerun selected.'

== Conclusions ==

1. Do NOT test "Process files" with "unregister" steps using the "Rerun selected" menu. Always check the steps you wish to test, select clear and the then build.
2. If you happen to get the UI error and then the action step error, try re-registering the VBP dlls.

Again, mileage may vary...

-Sheryl

kinook
05-02-2007, 01:51 PM
You did indeed find a bug -- if the Filename field of a COM Register action configured to unregister is not a valid filename (expands to blank or only a path), building the step will delete the aforementioned registry key.

The fix is to re-register all of the DLLs in the C:\Program Files\VisBuildPro6\System folder, which can be accomplished by reinstalling VBP or unzipping and saving the attached file in the above folder and double-clicking in Explorer.

As you mentioned, Rebuild Selected should not be used to build iterating steps such as Process Files (and children, although it should not result in the problem described above, which will be fixed in the next release). This FAQ describes several alternative methods for rebuilding iterating actions:
http://www.kinook.com/Forum/showthread.php?threadid=240