Link to home
Start Free TrialLog in
Avatar of NateDizzle
NateDizzle

asked on

Deployment: System.IO.FileNotFoundException:

I am deploying a small database program onto an office computer.  The program runs seemlessly on the computer it has been developed on.  I created an msi project to install the program.

When I run the program all is fine except for when I click on one button on a second dialog form.

The appropiate .Net Framework has  been installed on the computer where I am having trouble.

************** Exception Text **************
System.IO.FileNotFoundException: The specified module could not be found.
   at E_Tracker.AddRecord.Button3_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.573
    CodeBase: file:///c:/windows/microsoft.net/framework/v1.1.4322/mscorlib.dll
----------------------------------------
E-Tracker
    Assembly Version: 1.0.1579.14858
    Win32 Version: 1.0.1579.14858
    CodeBase: file:///C:/Program%20Files/E-Tracker/E-Tracker_inst/E-Tracker.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.573
    CodeBase: file:///c:/windows/assembly/gac/system.windows.forms/1.0.5000.0__b77a5c561934e089/system.windows.forms.dll
----------------------------------------
System
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.573
    CodeBase: file:///c:/windows/assembly/gac/system/1.0.5000.0__b77a5c561934e089/system.dll
----------------------------------------
Microsoft.VisualBasic
    Assembly Version: 7.0.5000.0
    Win32 Version: 7.10.3052.4
    CodeBase: file:///c:/windows/assembly/gac/microsoft.visualbasic/7.0.5000.0__b03f5f7f11d50a3a/microsoft.visualbasic.dll
----------------------------------------
System.Drawing
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.573
    CodeBase: file:///c:/windows/assembly/gac/system.drawing/1.0.5000.0__b03f5f7f11d50a3a/system.drawing.dll
----------------------------------------
System.Data
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.573
    CodeBase: file:///c:/windows/assembly/gac/system.data/1.0.5000.0__b77a5c561934e089/system.data.dll
----------------------------------------
System.Xml
    Assembly Version: 1.0.5000.0
    Win32 Version: 1.1.4322.573
    CodeBase: file:///c:/windows/assembly/gac/system.xml/1.0.5000.0__b77a5c561934e089/system.xml.dll
----------------------------------------
Interop.DSOleFile
    Assembly Version: 1.4.0.0
    Win32 Version: 1.4.0.0
    CodeBase: file:///C:/Program%20Files/E-Tracker/E-Tracker_inst/Interop.DSOleFile.DLL
----------------------------------------
Avatar of tgannetts
tgannetts

What does the button on the form attempt to do?

Tom  
Avatar of NateDizzle

ASKER

it displays a file dialog / folder dialog dependent on a variable.  Then it uses the dsolefile.dll to get the document properties (title) from a file if a file was chosen.

I originally assumed that the dsolefile was the problem, but it indicates  that it has been loaded and the dll file and interop file have been transferred to the other computer.
My first thought was that it was probably the application unable to locate the Interop.DSOleFile.DLL. Is this definitely located in the application folder on the machine it is not working properly on?

If it is, then could you add the code that you are using for the button click.

Tom
As I debug this myself I have discovered that the dsolefile is the problem specifically these two lines:

Dim PropReader As New DSOleFile.PropertyReader
Dim Props As DSOleFile.DocumentProperties
OKAY!

So I solved it, vb was referring to the file path of the Dsole.dll on my computer.  So i pointed it to the c:\ drive and placed the dll in that folder in the other computer.

WHY doesn't vb redirect this reference when it moves the dll with the distribution package????  This is beyond me, it installed the dll onto the other computer but doesn't change the path of the reference.  There must be something I overlooked to get VB to do this, right?
ASKER CERTIFIED SOLUTION
Avatar of tgannetts
tgannetts

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
SOLUTION
Avatar of Bob Learned
Bob Learned
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial