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

  1. Create a new Standard EXE project in Visual Basic. Form1 is created by default.


  2. Add a new module (Module1) to the project.


  3. 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
     


  4. Save the project, compile it, and then exit Visual Basic.


  5. 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


Last Reviewed: January 5, 2000
© 2000 Microsoft Corporation. All rights reserved. Terms of Use.