Skip navigation
VMware

This Question is Answered (go to answer)

2 "helpful" answers available (6 pts)
488 Views 6 Replies Last post: May 11, 2010 7:45 AM by j.speetjens RSS
vtimmerm Novice 9 posts since
Mar 10, 2010
Currently Being Moderated

Apr 8, 2010 5:10 AM

One .dll must be in the base for ThinApped app to work

Hi all,

 

I have this application that apparently depends on the Visual Basic RunTime 5 dll  "MSVBVM50.dll" . Although the dll is captured during the install of the application, and is part of the project, the resulting virtual app won't run, unless this dll is also copied to the base.

 

I noticed that the virtual app wouldn't run on a clean system, but would run on the system that was used to capture the installation (and has all the relevant files in the base). After that, I was able to pinpoint the problem to this one dll.

 

Although it is easy enough to put this dll in the base, or write a script that copies the dll to the base on runtime, it is more important for me to know what's going on. Why isn't ThinApp able to use the virtual instance of this .dll. It is part of the project in the directory %SystemSystem% and is included in the build. Why does the virtual app need it in the base as well?

 

One possible explanation is that the application has something done by another process that is part of the base. This process would need the dll to be in the base, as it can't see the virtual filesystem. Is there a way to check this?

 

Has anyone seen this before? Any suggestion is welcome!

 

Thanks,

Vincent

BienekS Enthusiast 25 posts since
Aug 7, 2007
Currently Being Moderated
1. Apr 8, 2010 8:48 AM in response to: vtimmerm
Re: One .dll must be in the base for ThinApped app to work

Hi Vincent,

 

i have seen this several times, pretty often when the virtual app communicates with another process/service via COM or something like that, i even saw an application running kind of an "runas" and this communicates with a process running outside the virtual bubble, so for example open a virtual cmd, run "runas .... cmd.exe" and you are outside the bubble.

Unfortunately most times this isn`t solveable.

 

You could try opening taskmanager and have a look at busy processes/new processes and have Log-Monitor open. There should be one busy process missing within logmonitor which is active/new in taskmanager.

 

Another workaround could be putting VB 5 Runtime into your base-image as the application will also search for the dll in windows\ystem32, which is only a workaround and of course not a real satisfying solution.

 

Hope this helps understanding.

 

Greetings,

Stephan

Shondoit Enthusiast 36 posts since
Mar 1, 2010
Currently Being Moderated
3. Apr 9, 2010 2:33 AM in response to: vtimmerm
Re: One .dll must be in the base for ThinApped app to work

 

First, I would suggest manually registering the DLL during the capture. (If you don't know how to do it, google for regsvr32)

 

If that doesn't work...

I'm providing the following script as is and won't guarantee it works in every case. I'll leave it up to you what to do with it.

 

When the first process start, it will copy a file (in your case the DLL) to the base of the application

(within the virtual environment, I'm not sure if your application will work if it's within the virtual environment or if it requires the dll to be in the physical directory)

After the last process closes it will delete the file.

 

I hope it helps in your situtation, cause I'm still struggling with mine.

 

 

Attachments:
m.golfieri Novice 26 posts since
Apr 7, 2006
Currently Being Moderated
4. Apr 15, 2010 6:17 AM in response to: Shondoit
Re: One .dll must be in the base for ThinApped app to work

Hi,

I've incapsulate application that use Visual Basic Virtual Machine 5 and 6. They works ok!

I use Windows 2000 VM to capture application setup with ThinApp 4.5

 

The problem you fould could caused by :

1 missing dependency . In that case try to encapsulate the setup of VB5 Runtime (see attached setup)

2 the file you're talking  about is registered outside windows\system32. In that case you could:

a. register the file in windows\system32 (I think this is your problem because you're talking about %SystemSystem%)

b. window\system32 is referenced with phisical path in hkey_local_machine.txt (the file you find in the folder of Build.bat) . In that case replace phisicla path with %systemSystem% and build capsule again.

 

 

If you want you could create a slim capsule only with VB5 runtime and enable RequiredAppLink in package.ini of your capsule

 

Mirko

Attachments:
jifeng Novice 6 posts since
Mar 14, 2005
Currently Being Moderated
5. Apr 15, 2010 3:25 PM in response to: vtimmerm
Re: One .dll must be in the base for ThinApped app to work

Since this DLL is in the package, have you tried the "ExternalDlls" option in the package.ini so that you don't need to copy the DLL to the base system?  Like this:


[BuildOptions]
ExternalDlls=MSVBVM50.dll

 

j.speetjens Enthusiast 94 posts since
May 27, 2008
Currently Being Moderated
6. May 11, 2010 7:45 AM in response to: jifeng
Re: One .dll must be in the base for ThinApped app to work

you could also register the dll (regsvr.exe) within your VOS.

after that, sandbox merge, new package, build..

 

It worked for me a couple of times

 






Jeroen Speetjens

CIS-Group.nl - VMware Partner

Jeroen Speetjens CIS-Group.nl - VMware Partner

Bookmarked By (0)

Share This Page

Communities