py2exe and MSVCR90.dll and wx

I made a decision to move to 2.6.2 when I began the development of an
upgrade to an application I built. This issue with the dlls was not
expected and has set me back some. This group and the wxPython wiki
seem to have the most information. Thus, please forgive me if I am
asking this in the wrong place. The example code on the py2exe page
on the wiki was helpful thanks for that Werner.

Here is my question though. How do you know it works? I didn't
realize this when I started trying to fix the problem and so I did the
knee jerk thing and downloaded the installer from Microsoft since the
first hit I found about the problem said that I just needed to have
those installed. From what I could read on this page

http://msdn.microsoft.com/en-us/library/aa375674(VS.85).aspx

my application is using the dlls that are in the sxs directory in
windows on my computer even though I packaged them in the dist
directory.

I know, I know-well test it yourself on a machine that does not have
the sxs directory and the dlls installed. Unfortunately, the weirdest
thing, the computer I use to write code I keep isolated from
everything else. It turns out that all of the other computers I use
have applications that caused the install of the dlls in the sxs
directory. I know one application that installs them is Network Magic
because the folder creation date on my personal computers matches the
date and time I installed Network Magic. I am not sure what
application at work caused these to be installed. So I can't actually
test this even though I have access to seven different windows
computers. From what I can tell, once these are added to the SxS
folder they cannot be removed easily by the user-I thought about that
also.

If I am making sense so far. Here is why I am asking- as Werner
points out the names of the folders in the sxs directories are very
complex- I assumed his example is correct and he is suggesting that
the folder in the application directory (the dist directory) be named:

C:\Dist\Microsoft.VC90.CRT
the manifest file is named: Microsoft.VC90.CRT.manifest

This compares to the original as:

x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-
ww_d08d0375.manifest

If anyone has any clarifying remarks I would sure appreciate them.

Thanks

Burch

Burch,

Burch Kealey wrote:

I made a decision to move to 2.6.2 when I began the development of an
upgrade to an application I built. This issue with the dlls was not
expected and has set me back some. This group and the wxPython wiki
seem to have the most information. Thus, please forgive me if I am
asking this in the wrong place. The example code on the py2exe page
on the wiki was helpful thanks for that Werner.

Here is my question though. How do you know it works? I didn't
realize this when I started trying to fix the problem and so I did the
knee jerk thing and downloaded the installer from Microsoft since the
first hit I found about the problem said that I just needed to have
those installed. From what I could read on this page

Microsoft Learn: Build skills that open doors in your career

my application is using the dlls that are in the sxs directory in
windows on my computer even though I packaged them in the dist
directory.

I know, I know-well test it yourself on a machine that does not have
the sxs directory and the dlls installed. Unfortunately, the weirdest
thing, the computer I use to write code I keep isolated from
everything else. It turns out that all of the other computers I use
have applications that caused the install of the dlls in the sxs
directory. I know one application that installs them is Network Magic
because the folder creation date on my personal computers matches the
date and time I installed Network Magic. I am not sure what
application at work caused these to be installed. So I can't actually
test this even though I have access to seven different windows
computers. From what I can tell, once these are added to the SxS
folder they cannot be removed easily by the user-I thought about that
also.

If I am making sense so far. Here is why I am asking- as Werner
points out the names of the folders in the sxs directories are very
complex- I assumed his example is correct and he is suggesting that
the folder in the application directory (the dist directory) be named:

C:\Dist\Microsoft.VC90.CRT
the manifest file is named: Microsoft.VC90.CRT.manifest

This compares to the original as:

x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-
ww_d08d0375.manifest

If anyone has any clarifying remarks I would sure appreciate them.
  

My test was:
- obviously build on the Py2.6 machine
- try to run the exe, works

Now move to another machine, e.g. Win XP or Win2K
- both of these machines don't have the SxS stuff (at least not the MSVC we talk about here)
- copy dist folder from the dev machine to the test machine
- run it and it works
- if I rename the Microsoft.VC90.CRT and run it again it fails, if I don't have the second copy of this folder under the lib folder it fails

From what I have read it should look in the application folder first, if it finds the stuff it uses it, if it does not then it looks in the SxS folder and if it finds it uses that.

Yes, your application folder should contain the folder Microsoft.VC90.CRT and it in turn should have the manifest and the dll's and if you use "lib" then you have to have a second copy of all that in the "lib" folder.

Hope this helps.
Werner

I use the free VMWare server to create virtual machines with freshly
installed Windows and Linux systems on them for testing. I make a
snapshot immediately after installing the OS, then revert to that
after each testing session.

···

--
Best Regards,
Michael Moriarity

Hi

···

On Tue, Aug 4, 2009 at 11:06 PM, Burch Kealey bkealey@mail.unomaha.edu wrote:

I made a decision to move to 2.6.2 when I began the development of an

upgrade to an application I built. This issue with the dlls was not

expected and has set me back some. This group and the wxPython wiki

seem to have the most information. Thus, please forgive me if I am

asking this in the wrong place. The example code on the py2exe page

on the wiki was helpful thanks for that Werner.

Here is my question though. How do you know it works? I didn’t

realize this when I started trying to fix the problem and so I did the

knee jerk thing and downloaded the installer from Microsoft since the

first hit I found about the problem said that I just needed to have

those installed. From what I could read on this page

http://msdn.microsoft.com/en-us/library/aa375674%28VS.85%29.aspx

my application is using the dlls that are in the sxs directory in

windows on my computer even though I packaged them in the dist

directory.

I know, I know-well test it yourself on a machine that does not have

the sxs directory and the dlls installed. Unfortunately, the weirdest

thing, the computer I use to write code I keep isolated from

everything else. It turns out that all of the other computers I use

have applications that caused the install of the dlls in the sxs

directory. I know one application that installs them is Network Magic

because the folder creation date on my personal computers matches the

date and time I installed Network Magic. I am not sure what

application at work caused these to be installed. So I can’t actually

test this even though I have access to seven different windows

computers. From what I can tell, once these are added to the SxS

folder they cannot be removed easily by the user-I thought about that

also.

If I am making sense so far. Here is why I am asking- as Werner

points out the names of the folders in the sxs directories are very

complex- I assumed his example is correct and he is suggesting that

the folder in the application directory (the dist directory) be named:

C:\Dist\Microsoft.VC90.CRT

the manifest file is named: Microsoft.VC90.CRT.manifest

This compares to the original as:

x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-

ww_d08d0375.manifest

If anyone has any clarifying remarks I would sure appreciate them.

Thanks

I have python 2.6.2 with py2exe and wxpython is works fine. I installed vcredist, in the case py2exe I placed the dll msvcp90.dll at windows/system32.

More info:
http://jyr.tumblr.com/post/149945243/python-2-6-2-en-windows-con-py2exe-y-wxpython

SIN ETIQUETAS.[ PUNTO ]
http://jyr.tumblr.com
http://www.opentumblr.com

Thanks for the comments and observations. This has been very helpful.

Cheers

Burch