Hi Michael,

As you said, I have been surprised by the result. One of my users copied 
the missing DLL indicated by Depends (IEShims.dll) to the application 
folder and Depends indicates now another missing DLL: ieframe.dll which 
seems to be again linked to IE.
Well, I have the feeling that the only possible solution so far is to 
follow your other advice: adding the IE folder to the environment path. 
Could you please explain me how to proceed?

Finally, I still very puzzled how the difference between the DLL error 
indicated by Depends and the DLL which cannot be found according to the 
.NET error message raised while launching the application.
If the .NET raised an error message: "System.DllNotFoundException: 
Impossible to load the DLL SQLite.Interop.DLL", why this DLL file error 
is not also indicated by Depends?

Sorry, I would like to understand :-//
Thank you very much again! :-)
Best regards,
Cyrille




Le 22/06/2011 03:29, Michael Stephenson a écrit :
> Hi Cyrille,
>
> You should probably use Dependency Walker on an end-user machine and profile
> your app with it to see what module(s) it cannot load.
>
> Since your app is 32bit, you'll need to get the 32bit version of Dependency
> Walker.  Then, load your exe into DW, click on the Profile menu, and start
> profiling.
>
> The log at the bottom of the DW window will show quite clearly which modules
> are loaded (you may be surprised :o) and will indicate in red any issues
> that are encountered.
>
> Note that not all failures of LoadLibrary or GetProcAddress are actual
> errors.  Usually the library that is executing these calls is ready to
> handle the case where the DLL may be missing or may be a different version
> that does not export a particular function.
>
> -----Original Message-----
> From: sqlite-users-boun...@sqlite.org
> [mailto:sqlite-users-boun...@sqlite.org] On Behalf Of Cyrille
> Sent: Monday, June 20, 2011 2:20 PM
> To: General Discussion of SQLite Database
> Subject: Re: [sqlite] Critical issue
>
> Dear Michael,
>
> Thank you very much. I am currently working with my users to make some
> testing following your advice. It seems that so far, the users
> encountering the bug has IE 8 installed. However, I have on another
> computer IE9 and the desktop application is running perfectly.
>
> They ran Depends on their end-user machine and it reveals two DLLs issue
> (cf. screenshot attached). However, these DLLs are not the SQLite.NET
> one. Thus my question: do the error mentioned in the screenshot attached
> can lead, on the end-user machine, to an error like
> "System.DllNotFoundException: Impossible to load the DLL
> '_SQLite.Interop.DLL_'"? (i.e. an error linked to a different DLL than
> the one mentioned by Depends)
>
> Thanks again very much :)
> Best regards,
> Cyrille
>
>
> Le 19/06/2011 20:10, Michael Stephenson a écrit :
>> You might also ask them if their IE version is 32-bit or 64-bit.
>>
>> Yes, ideally you would try Depends on an end-user machine.  Then, you
> might
>> try tweaking that machine (manually adjust the path, copy ieshims.dll to
>> somewhere on the path, etc.) until you come up with a workable solution.
>>
>> -----Original Message-----
>> From: sqlite-users-boun...@sqlite.org
>> [mailto:sqlite-users-boun...@sqlite.org] On Behalf Of Cyrille
>> Sent: Sunday, June 19, 2011 1:56 PM
>> To: General Discussion of SQLite Database
>> Subject: Re: [sqlite] Critical issue
>>
>> Dear Michael,
>>
>> Thanks for your message. I am going to ask my users for their IE version
> to
>> see if there is a link with the issue.
>>
>> Regards,
>> Cyrille
>>
>>
>>
>> Le 19/06/2011 05:20, Michael Stephenson a écrit :
>>> If the IE folder is not on the path, yes, you have to either copy it
>>> somewhere on the path, copy it to your application folder, or add the
>>> IE folder to the path.  I believe that not having the IE folder on the
>>> path is a mistake in the installer for the newer versions of IE.  Back
>>> in the day, I think that the IE folder used to be on the path
>>> automatically.  This is a good example of bad practices on Microsoft's
>>> part and also how they have tied IE into the operating system so that you
>> can't get rid of it.
>>> I think that this is a typical issue with just about any application
>>> (Depends will show a missing delay load) because shell32.dll on newer
>>> versions of Windows has this delay load dependency on ieshims.dll.
>>>
>>> However, usually this is not a problem because usually the delayed
>>> load isn't invoked because nothing in the DLL is used.
>>>
>>> You might want to use Dependency Walker to profile your app and get a
>>> good idea of what the exact issue is.  If your app is 32-bit, you'll
>>> need the 32-bit depends.exe to profile the app.
>>>
>>> I'm going to bet that if all of your users aren't having the problem,
>>> then the ones with IE7 or earlier are good and the ones with IE8 or
>>> later are the ones having the problem.
>>>
>>> -----Original Message-----
>>> From: sqlite-users-boun...@sqlite.org
>>> [mailto:sqlite-users-boun...@sqlite.org] On Behalf Of Cyrille
>>> Sent: Saturday, June 18, 2011 11:36 AM
>>> To: General Discussion of SQLite Database
>>> Subject: Re: [sqlite] Critical issue
>>>
>>> It seems that I have been too quickly enthusiastic. Indeed, I have
>>> already received a feedback from a user who has the same issue running
>>> a 32-bit Windows.
>>>
>>> Thus, I tried to follow your advices Michael. Concerning the first
>>> link which advice putting the DLL in the environment path. I am not
>>> sure to understand but:
>>> - the application is correctly running from VB express
>>> - all DLLs are in the application folder (once built) So, this issue
>>> seems to be ok, am I right?
>>>
>>> In your second message, you suggest me to use Dependency Walker. I did
>>> it and I obtain two errors:
>>> Warning: At least one delay-load dependency module was not found.
>>> Warning: At least one module has an unresolved import due to a missing
>>> export function in a delay-load dependent module.
>>> The warnings seem to be linked to the error displayed in the same
>>> software: Error opening file for IESHIMS.DLL
>>>
>>> However, this DLL should be in the IE folder so I do not think I have
>>> to copy it in my application folder. Right?
>>>
>>> Sorry if my questions are stupid but I cannot figure it out.
>>>
>>> Best regards,
>>> Cyrille
>>>
>>>
>>> Le 18/06/2011 15:50, Black, Michael (IS) a écrit :
>>>> Also...try dependency walker to ensure you have all the DLLs you need
>>> deployed with your package that aren't "standard".
>>>> http://www.dependencywalker.com/
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Michael D. Black
>>>>
>>>> Senior Scientist
>>>>
>>>> NG Information Systems
>>>>
>>>> Advanced Analytics Directorate
>>>>
>>>>
>>>>
>>>> ________________________________
>>>> From: sqlite-users-boun...@sqlite.org
>>>> [sqlite-users-boun...@sqlite.org] on behalf of beell [be...@web.de]
>>>> Sent: Saturday, June 18, 2011 8:37 AM
>>>> To: sqlite-users@sqlite.org
>>>> Subject: EXT :Re: [sqlite] Critical issue
>>>>
>>>> Am 18.06.2011 14:47, schrieb Cyrille:
>>>>> Dear all,
>>>>>
>>>>> Since I am using the new version of SQLite.NET, some of my users
>>>>> have the following error when launching my application:
>>>>>
>>>>> System.DllNotFoundException: Impossible de charger la DLL
>>>>> 'SQLite.Interop.DLL': Le module spécifié est introuvable. (Exception
>>>>> de HRESULT : 0x8007007E)
>>>>>          à
>>> System.Data.SQLite.UnsafeNativeMethods.sqlite3_open_interop(Byte[]
>>>>> utf8Filename, Int32 flags, IntPtr&      db)
>>>>>          à System.Data.SQLite.SQLite3.Open(String strFilename,
>>>>> SQLiteOpenFlagsEnum flags, Int32 maxPoolSize, Boolean usePool)
>>>>>          à System.Data.SQLite.SQLiteConnection.Open()
>>>>>
>>>>> However, the SQLite.Interop is in the application folder. I specify
>>>>> that I am using VB 2010 Express with the framework 4.0.
>>>>>
>>>>> Sorry but I really have troubles: if I cannot solve this critical
>>>>> issue, I cannot see what to do but stopping the development of my
>>>>> application :-( Thank you very much in advance Best regards, Cyrille
>>>> Are you sure that your users have the right dlls according to their
>>>> system (x86 vs x64)?
>>>>
>>>>
>>>> _______________________________________________
>>>> sqlite-users mailing list
>>>> sqlite-users@sqlite.org
>>>> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>>>> _______________________________________________
>>>> sqlite-users mailing list
>>>> sqlite-users@sqlite.org
>>>> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>>> _______________________________________________
>>> sqlite-users mailing list
>>> sqlite-users@sqlite.org
>>> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>>>
>>> _______________________________________________
>>> sqlite-users mailing list
>>> sqlite-users@sqlite.org
>>> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>> _______________________________________________
>> sqlite-users mailing list
>> sqlite-users@sqlite.org
>> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>>
>> _______________________________________________
>> sqlite-users mailing list
>> sqlite-users@sqlite.org
>> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
> _______________________________________________
> sqlite-users mailing list
> sqlite-users@sqlite.org
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to