Discussion:
"Small" installer
(too old to reply)
Johannes Singler
2006-03-13 07:08:49 UTC
Permalink
Hi,

I've written a small program using Managed DirectX (1.x) that I want to
distribute. However, I don't like a tens of megabytes DirectX installer
in addition to the .NET Framework 2.0 with my 200K program.

My question is: Can I avoid the redistributables when I'm sure that the
user has DirectX 9 already installed? Aren't there only three DLLs
missing then? I know that I can "shrink" the redistributables'
installer's size, but still, it's a lot of overhead.
Can't I just tell some installer script to take these three DLLs to the
right place?

Thx,
Johannes
C#Re_eYe
2006-03-13 19:20:24 UTC
Permalink
yes i wonder about this too,
can we distribute some dll's of managed directx with our game, instead
of carrying game with huge managed directx??
i think we need .NET framework for sure everyway.
ZMan
2006-03-14 06:31:49 UTC
Permalink
See my other reply.
Post by C#Re_eYe
can we distribute some dll's of managed directx with our game, instead
of carrying game with huge managed directx??
Distributing the managed part of the installer, is not significatly bigger
than jsut shipping the DLLs
Post by C#Re_eYe
i think we need .NET framework for sure everyway.
Yes you do, but thats a separate redist and one that should be tested for
and run BEFORE you run any managed DirectX installer.
--
Zman
http://www.thezbuffer.com - News and information for Managed DirectX
Post by C#Re_eYe
yes i wonder about this too,
can we distribute some dll's of managed directx with our game, instead
of carrying game with huge managed directx??
i think we need .NET framework for sure everyway.
ZMan
2006-03-14 06:29:51 UTC
Permalink
According to the EULA you may not.

2 main reasons.
1. If Microsoft install them they know where they are if they need to patch
them in windows update.
2. There may be more to installing than just copying files e.g. registry
settings, GAC installs etc, if you get it wrong you may break other
programs.

If you know for sure that the core DirectX files are already there then you
only need to redist D3DX and MDX for your particular SDK plus DX setup.

See
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directx9_c/Installing_DirectX_with_DirectSetup.asp

e.g. you need (for October since that's all I have handy)
OCT_MDX_x86.cab 896Kb
Aug2005_d3dx0_27_x86.cab 1054Kb
So assuming your own setup program will compress D3DX and the MDX assemblies
to the same size as those CABs this means your overhead is the setup
libraries which is:
DXSETUP.EXE 478Kb
dsetup32.dll 2194Kb
dsetup.dll 73Kb
dxupdate.cab 73kb
dxdllreg_x86.cab 41Kb
for a total of 2859Kb overhead for the peace of mind that its all installed
properly. Certainly not tens of megabytes and barely a blip on a download
these days and tiny compared to the media files in most 3d games.


However, the easiest way is just to tell the user they must run the web
installer before your application then you don't have to redist anything.
--
Zman
http://www.thezbuffer.com - News and information for Managed DirectX
Post by Johannes Singler
Hi,
I've written a small program using Managed DirectX (1.x) that I want to
distribute. However, I don't like a tens of megabytes DirectX installer in
addition to the .NET Framework 2.0 with my 200K program.
My question is: Can I avoid the redistributables when I'm sure that the
user has DirectX 9 already installed? Aren't there only three DLLs missing
then? I know that I can "shrink" the redistributables' installer's size,
but still, it's a lot of overhead.
Can't I just tell some installer script to take these three DLLs to the
right place?
Thx,
Johannes
Johannes Singler
2006-04-04 22:04:09 UTC
Permalink
Post by ZMan
According to the EULA you may not.
2 main reasons.
1. If Microsoft install them they know where they are if they need to patch
them in windows update.
2. There may be more to installing than just copying files e.g. registry
settings, GAC installs etc, if you get it wrong you may break other
programs.
If you know for sure that the core DirectX files are already there then you
only need to redist D3DX and MDX for your particular SDK plus DX setup.
See
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directx9_c/Installing_DirectX_with_DirectSetup.asp
e.g. you need (for October since that's all I have handy)
OCT_MDX_x86.cab 896Kb
Aug2005_d3dx0_27_x86.cab 1054Kb
So assuming your own setup program will compress D3DX and the MDX assemblies
to the same size as those CABs this means your overhead is the setup
DXSETUP.EXE 478Kb
dsetup32.dll 2194Kb
dsetup.dll 73Kb
dxupdate.cab 73kb
dxdllreg_x86.cab 41Kb
for a total of 2859Kb overhead for the peace of mind that its all installed
properly. Certainly not tens of megabytes and barely a blip on a download
these days and tiny compared to the media files in most 3d games.
Ok, so I just copy all those files into the .zip archive that also
contains my .msi file and Setup.exe. But how can I call DXSetup.exe?
I tried to do it with an installer project in VisualStudio 2005, but how
can I make this call then? The "Custom Actions" only operate on files
that reside in the target folder. Do I have to copy all the setup files
there first?

Bye,
Johannes
ZMan
2006-04-04 23:46:22 UTC
Permalink
I'm not sure, you would be better off asking in an MSI/windows installer
forum. Though when you find out please post back here as I would also love
to know the correct way to call dxsetup from a VS2005 install project.
--
Zman
http://www.thezbuffer.com - News and information for Managed DirectX
Post by Johannes Singler
Ok, so I just copy all those files into the .zip archive that also
contains my .msi file and Setup.exe. But how can I call DXSetup.exe?
I tried to do it with an installer project in VisualStudio 2005, but how
can I make this call then? The "Custom Actions" only operate on files that
reside in the target folder. Do I have to copy all the setup files there
first?
Bye,
Johannes
Johannes Singler
2006-04-18 21:16:02 UTC
Permalink
Post by ZMan
I'm not sure, you would be better off asking in an MSI/windows installer
forum. Though when you find out please post back here as I would also love
to know the correct way to call dxsetup from a VS2005 install project.
I did not find a perfect solution so far. I use the following workaround
in the meantime. Include DXSetup.exe and the needed .cab files in the
setup project and get them copied to a subfolder of your application's
folder. Then run the DXSetup.exe silently by using a custom action.
Everything is alright then, except that hard disk space is wasted for
the installer files. But maybe one could remove them after the
installation by means of some other custom action.
But after all, everything is packaged nicely into one .msi file. That's
most important for me since there is no hassle for the end user.

Johannes
vf
2008-04-13 13:39:27 UTC
Permalink
Hi, I'm completely new to all this installer thing. I did pretty much what
you did and it crashes with the "Invalid command line switch" error when
invoking the DXSETUP.exe. Perhaps wrong parameters in the Custom Action
Properties(e.g. Arguments, Condition etc.)? Any input will be highly
appreciated, thank you in advance.

url:http://www.ureader.com/msg/1467963.aspx
vf
2008-04-13 13:39:52 UTC
Permalink
Hi, I'm completely new to all this installer thing. I did pretty much what
you did and it crashes with the "Invalid command line switch" error when
invoking the DXSETUP.exe. Perhaps wrong parameters in the Custom Action
Properties(e.g. Arguments, Condition etc.)? Any input will be highly
appreciated, thank you in advance.

url:http://www.ureader.com/msg/1467963.aspx

Loading...