VC++ 2005 SP1 : redistirbutable files

G

Guest

Hi,

I'm facing an issue and your help could be very helpful.
In few words, I have a app build with VC++ 2005 SP1.
I want to deploy it on a target machine, because the CRT dependency
described in the manifest can't be resolved -> I have to deploy the CRT on my
traget computer.
No real issue with the concept.
The easiest way for me could be to use a vc_redistrib.exe for SP1.
But I can't find it for SP1. So no deployment this way, and my app is not
runnable because of its missing dependencies.
Any tips ? location ?
An alternate solution ? the CRT dll + manifest in a deployment solution I
guess. Just to confirm.
I'm stuck.

Thanks for your help.
 
N

Nathan Mates

I'm facing an issue and your help could be very helpful.
In few words, I have a app build with VC++ 2005 SP1.
I want to deploy it on a target machine, because the CRT dependency
described in the manifest can't be resolved -> I have to deploy the CRT on my
traget computer.

Well, if you're not really *using* manifests for any real purpose,
then you can try just getting rid of them. Right click on your
project, select properties, then set
Linker -> Manifest File -> Generate Manifest: No
Manifest Tool -> Input & Output -> Embed Manifest: No

Manifests sound like a nice idea in theory that escaped into the
wild still half-baked. Maybe in the next VS, they'll work somewhat
reliably, and not need some arcane XML incantations to use.

Nathan Mates
 
C

Carl Daniel [VC++ MVP]

Nathan said:
Well, if you're not really *using* manifests for any real purpose,
then you can try just getting rid of them. Right click on your
project, select properties, then set
Linker -> Manifest File -> Generate Manifest: No
Manifest Tool -> Input & Output -> Embed Manifest: No

Manifests sound like a nice idea in theory that escaped into the
wild still half-baked. Maybe in the next VS, they'll work somewhat
reliably, and not need some arcane XML incantations to use.

You *must* have a manifesst to load the VC8 runtime library DLLs.

An SP1 version of vcredist will be available from the Microsoft Download
center sometime soon. Exactly how soon is soon? I can't say,
unfortuntaely. Hopefully it's in the next couple weeks, but I don't have
any insider knowledge that says that it will be - it's just wishful thinking
on my part!

-cd
 
N

Nathan Mates

Well, if you're not really *using* manifests for any real purpose,
then you can try just getting rid of them. Right click on your
[...]

You *must* have a manifesst to load the VC8 runtime library DLLs.

Not a chance. I've made plenty of exes without manifests, and they
run fine. (Using the Multithreaded runtime lib, not Multithreaded DLL
Runtime). And, these exes work just fine on both Win2000 and WinXP.
Win2000 does the right thing and ignores the silly manifests; WinXP
tried to demand the runtime libs to be installed at *JUST* the right
location, installed during a full moon, while opening one's wallet in
the direction of Microsoft.

Since turning off manifests, as I described earlier this thread,
everything *JUST* *WORKS*. So, I've not exactly been a friend of
manifests, aka DLL Hell 2.0.

Nathan Mates
 
T

Tom Widmer [VC++ MVP]

Nathan said:
Well, if you're not really *using* manifests for any real purpose,
then you can try just getting rid of them. Right click on your
[...]

You *must* have a manifesst to load the VC8 runtime library DLLs.

Not a chance. I've made plenty of exes without manifests, and they
run fine. (Using the Multithreaded runtime lib, not Multithreaded DLL
Runtime).

Hang on, you've just said you use static linking to the multithreaded
runtime lib. How does that imply that you don't need a manifest to use
the VC8 runtime library DLLs?

The general tone of your response is along the lines of "I don't
understand how manifests work, so you shouldn't use them," which is not
logical. I don't understand how manifests work either - I haven't needed
to look into it yet (but probably will do soon, when we move to VC2005).
I'd be much more interested in specific criticisms (which others might
then rebut, or not) that a general dismissal of the mechanism.

Tom
 
B

BVS

The redist should be found here on your computer:
C:\Program Files\Microsoft Visual Studio
8\SDK\v2.0\BootStrapper\Packages\vcredist_x86\
 
Q

QbProg

It was easy. In VC 2003 you had to redist just the DLL's you were
using. STOP.
It should be easy in VC 2005 too. Just copy the CRT folders in your
DLL path and you're ok. Or use vc_redist.exe .

There are some little problems:
- Using vc_redist sometimes doesn't works. Why? I don't mind, but it
is a real trouble.
- the "x-copy" works at 90%. An example: a VB COM project that calls
your DLL's . No way, it won't start unless you copy everything in
system32 (!!!!!).
- if you have a mix of SP1 and non-SP1 dll's ... no way:)
- There's no DOCUMENTATION / FAQ for advanced issues (like isolation)
or manifest usage.

It was REALLY better a "DLL in the same folder" approach, just like
previous versions(it is the .NET approach, isn't it?)

Now you just moved the DLL hell to a worst MANIFEST+DLL+SIDEbySIDE+WOW
hell.

I'm just asking myself, WHY?

Sorry for my English :)
QbProg
 
G

Guest

Hi,

I think it will be a lot easier if the SP1 C++ runtime libraries are
included in Microsoft Component Installer. Then, we need to run only one
Microsoft tools to download all the dependencies we need.

--
Herbert
Fann Software
http://www.fannsoftware.com
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top