People using VB6's old PDW setup packager often get into trouble because they have failed to keep the PDW's knowledge base up to date. This is understandable, since it isn't an easy task.
The "knowledge" is contained in VB6DEP.INI and in *.DEP files (that in some cases have not been provided so you are supposed to create them). Updating means keeping up with 17 years or more of MS KB articles about files that have become non-deployable for various reasons as well as updating *.DEP file version and date information.
The upshot is you can end up with a PDW-created setup package that fails, hangs, causes reboot loops, etc.
Most of those can be resolved by examining the PDW-created Setup.LST file for the package to identify and remove "problem" files (usually DLLs and OCXs). However this takes an educated eye, and not everyone has the necessary experience for this.
CheckLST Utility
This program attempts to perform an automated check of the contents of *.LST files created using the PDW. It makes use of its own "knowledge base" in the form of its [Exclusions] section in CheckLST.ini and calls to SfcIsFileProtected() in Sfc.dll in Windows XP and later.
The *.LST file to scan can be provided several ways. You can drag/drop its icon onto CheckLST.exe's icon in Explorer, you can run CheckLST.exe from a command prompt and provide the *.LST file's name as a parameter, you can drag/drop the file's icon from Explorer onto CheckLST.exe's Label1 (the file name Label control at the top of the Form), or copy/paste, etc.
See the comments at the head of Form1's source code.
There is a TestSetup.lst file provided in the attached archive for testing. CheckLST.vbp includes this file name as the command line parameter for in-IDE runs, so you can generally just open the Project and hit F5 to run a canned test.
Requirements
The VB6 compiler is needed to compile the utility. No special steps should be required to do this.
Windows XP or later is required at runtime.
CheckLST.exe is self-contained as a single file, except that it requires CheckLST.ini located at App.Path. However this makes it pretty easy to copy anywhere you want to keep it for use.
References
You may find a few specific MS KB articles useful in understanding CheckLST and what it is doing:
Analysis of a *.LST file is reported in a LiteGrid UserControl (a simple flexgrid-like control used here to eliminate use of an OCX).
Bad things are noted in red, and these should be investigated. In most cases anything noted there in red is a file that you should be excluding from your PDW package.
You could also modify CheckLST to offer saving of the report as a TXT, RTF, HTM, etc. file.
CheckLST.ini's [Exclusions] Section
You can modify this for special cases, to correct things you consider errors there, or to add new items as you discover them or as new Windows versions change deployment rules in the future.
Last edited by dilettante; Jun 13th, 2015 at 01:43 PM.
Reason: typos