PRB: Missing Files Dialog Box Appears When Running PDW
ID: Q190502
|
The information in this article applies to:
-
Microsoft Visual Basic Professional and Enterprise Editions for Windows, version 6.0
SYMPTOMS
When running the Microsoft Visual Basic Package and Deployment Wizard
(PDW), a dialog titled "Missing Files" appears providing a list of missing
files. Files likely to be listed include:
Kernel.dll
User.dll
GDI.dll
CAUSE
The Package and Deployment Wizard scans a project's files for Declare
statements to determine if any additional dependency files need to be
distributed. If any such files are not found, the user is prompted for the
location of the files with the "Missing Files" dialog box.
If any declarations for 16-bit DLLs are found in the project's files, the
user is prompted for the location. For example, if the following 16-bit
declaration appears in the project the PDW will prompt the user for the
location of the Kernel DLL:
Declare Function GetWindowsDirectory Lib "Kernel" _
(ByVal lpBuffer As String, ByVal nSize As Integer) As Integer
This is a very common problem with applications converted from 16-bit
Visual Basic to Visual Basic 5.0 or 6.0, or with Visual Basic 4.0
applications that use conditional compilations that have been converted to
Visual Basic 5.0 or 6.0. The PDW does not take into consideration the
compiler directives when looking for Declare statements, as in the
following example:
#If Win32 Then
Declare Function GetWindowsDirectory Lib "Kernel32" _
Alias "GetWindowsDirectoryA" _
(ByVal lpBuffer As String, ByVal nSize As Long) As Long
#Else
Declare Function GetWindowsDirectory Lib "Kernel" _
(ByVal lpBuffer As String, ByVal nSize As Integer) As Integer
#End If
RESOLUTION
Convert all 16-bit declarations to their 32-bit equivalents and recompile
the project.
- or -
If conditional compilation was used to select between pairs of 16-bit and
32-bit declarations, the conditional compilation statements and 16-bit
declarations can be commented out or removed and the project recompiled.
- or -
Click OK in the "Missing Files" dialog; this causes the PDW to ignore the
missing files.
STATUS
This behavior is by design.
MORE INFORMATION
Steps to Reproduce Behavior
- Create a new Standard EXE project in Visual Basic. Form1 is created by
default.
- Add a new module (Module1) to the project.
- In the General Declarations section of Module1, add following code:
#If Win32 Then
Declare Function GetWindowsDirectory Lib "Kernel32" _
Alias "GetWindowsDirectoryA" _
(ByVal lpBuffer As String, ByVal nSize As Long) As Long
#Else
Declare Function GetWindowsDirectory Lib "Kernel" _
(ByVal lpBuffer As String, ByVal nSize As Integer) As Integer
#End If
- Save the project, compile it, and then exit Visual Basic.
- Start the Package and Deployment Wizard and proceed to the form
entitled "Package and Deployment Wizard - Package Folder." Select a
folder and click the Next button. Note that a dialog box entitled
"Missing Files" is displayed, with Kernel.Dll in the list of missing
files.
REFERENCES
For additional information, please see the following article in the
Microsoft Knowledge Base:
Q173049
: PRB: "Locate" Dialog Appears When Running Setup Wizard
Additional query words:
kbdss kbDSupport kbVBp kbVBp600 kbAppSetup
Keywords : kbGrpVB
Version :
Platform : WINDOWS
Issue type : kbprb