pyogre distribution problem

mrkissinger

22-08-2006 05:09:19

I have compiled pyogre with VC2005 express.
On the developing windows, my program which based on pyogre works fine.

But when I tested it on a fresh installed WinXP+SP2, even the configdialog couldn't be shown.

I checked the documents for VC2005 about distribution, it told me to distribution some DLLs.
According depends.exe, I found msvcr80.dll and msvrp80.dll must be distribution with my program. I added them to the package, but it did not help.

The most straight thing is, once I installed dotnet framework on XP, it worked!

Since I cannot ask everyone to install dotnet framework on XP, I need to know what to do to make the program runs on a fresh installed XP.

Waiting for help. Thanks.

OvermindDL1

22-08-2006 15:54:47

VS2k5 has this annoyance that Microsoft came up with to help remove the DLLHell, a side effect, those dll's you need are not real dll's and need to be registered to the system in a unique way, to do that you will need to package your program up in an installer that handles it. The .NET framework also installs those dll's which is why it worked when you installed that.

dermont

22-08-2006 17:26:24

http://forums.microsoft.com/MSDN/ShowPo ... 5&SiteID=1
"Answer Re: Running a very simple Win32 app on a comp without VC++ 2005 Express"

You could take a look at the above post. I haven't tried installing on a computer without the .NET framework so it wouldn't surprise me if .NET is required.

mrkissinger

23-08-2006 16:31:13

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=164465&SiteID=1
"Answer Re: Running a very simple Win32 app on a comp without VC++ 2005 Express"

You could take a look at the above post. I haven't tried installing on a computer without the .NET framework so it wouldn't surprise me if .NET is required.


This post is QUITE helpful! Thanks!

To help the other developers, I pasted the post here.

OK, due to popular demand, and my frustration with seeing so many people using Express that simply want to run an app on another machine, without the hassle of learning about merge modules, Windows Installer, etc, etc, etc, here is a way to perform deployment option number 2 above (i.e. installing C Runtime library applocal) for Express.

1) On the machine you have Express installed, create the following folder and subfolders in your
\program files\microsoft visual studio 8\VC folder:

redist\x86\Microsoft.VC80.CRT

2) Copy msvcr80.dll, msvcp80.dll, msvcm80.dll from
\windows\winsxs\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_0de06acd

into:

\program files\microsoft visual studio 8\VC\redist\x86\Microsoft.VC80.CRT

3) in the above Microsoft.VC80.CRT folder, create a new file named:

Microsoft.VC80.CRT.manifest

4) Paste the following content into the above manifest file:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!-- Copyright © 1981-2001 Microsoft Corporation -->
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<noInheritable/>
<assemblyIdentity
type="win32"
name="Microsoft.VC80.CRT"
version="8.0.50608.0"
processorArchitecture="x86"
publicKeyToken="1fc8b3b9a1e18e3b"
/>
<file name="msvcr80.dll"/>
<file name="msvcp80.dll"/>
<file name="msvcm80.dll"/>
</assembly>

Now you have a new folder in your Visual C++ Express installation that can be re-used when ever you need it.

To deploy these files, simply copy the Microsoft.VC80.CRT folder you just created to your program folder. That's it. So for example, if your application executable resides in C:\Program Files\MyApp, you'll have a folder named:

C:\Program Files\MyApp\Microsoft.VC80.CRT

that contains the 4 files I mentioned (3 DLLs and one manifest file you created by hand)

No installation of anything else is necessary. Just click on your EXE file, and your app will run. No special installation engines are necessary, just make your setup program (installer) create that subfolder Microsoft.VC80.CRT along with what you normally install with your app)

Let me know if you need similar instructions for MFC and I'll create them.

OvermindDL1

24-08-2006 21:52:07

Show me a VS2k5Express compiled program that runs on Windows 95 (With IE4 comctrl installed) and I'll be happy.

Yes, the people I work for still have plenty of those old things around so yes, it is still needed to be supported by me.

There is no freaking reason why you should have to jump through hoops like that...