Re: App built by VS2008 causes "side-by-side configuration"-error in Vista
- From: adebaene@xxxxxxxxxxxxxxxx
- Date: Wed, 26 Mar 2008 08:20:16 -0700 (PDT)
On 24 mar, 09:32, TheOne <daewon.y...@xxxxxxxxx> wrote:
On 3월24일, 오후2시23분, "Carl Daniel [VC++ MVP]"
<cpdaniel_remove_this_and_nos...@xxxxxxxxxxxxxxx> wrote:
TheOne wrote:
Then, what should I do not to see this error message from an app built
on VS2008? I guess this should happen on every old system without the
directory. Which setting shoud I change in VS2008? Should I install
the directories needed whenever I install my application?
You need to deploy the VC 2008 runtime to your vista machine. You should
have a file named vcresidt_x86.exe (or _x64, if you're on 64-bit) in a
subdirectory of your VS installation. Run that exe file on the Vista
machine. You can also download the redist from microsoft downloads if you'd
prefer.
http://www.microsoft.com/downloads/details.aspx?FamilyID=9b2da534-3e0....
Alternatively, you can build your application with static linking so that
you don't depend on having the redistributables installed.
-cd
Thank you for the kind answer. Much has been cleared.
OK. I now know that I can solve this for MY computer. But the problem
is that our team is migrating the IDE from VS 6.0 to VS 2008 for our
development and the end product should support from 2k to Vista.
Should I install the redis package everytime our product is installed?
If you want to link against DLL version of the CRT (C-RunTime), then
yes. That's why setup projects are for... There are .msm files to
redistribute the CRT' dlls with your apps, and there is also several
other redistibution possibilities.
Or should I static-build every module of my product?
That is another solution, but it won't work if:
- you've got several modules (eg, exes and dlls) in your app.
- and you're passing "CRT state dependant" objects from one module to
another. What it means, is that you can't (for example) :
--> do a "fopen" in the EXE then passes the FILE* to a DLL and have
the DLL do a fread/fwrite/whatever with it.
-->new/malloc a pointer in a DLL and delete/free it in another DLL.
etc....
Moreover, Microsoft recommends NOT to statically link the CRT, because
it means your application won't take benefit from a potential update /
bug correction that MS would apply to the CRT and distribute through
Windows Update. I find this last argument quite weak, but anyway....
For more information on application deployment, see
http://msdn2.microsoft.com/en-us/library/zebw5zk9.aspx
Or should I build for each version of OS?This has nothing to do with the target OS, but with wether the VC9 CRT
is already installed on the target machine (you can't count on it).
Or should I stick to old VS 6.0?I do not belive the deployment problem is a sufficient reason to stick
to the old compiler. YMMV
Arnaud
.
- References:
- App built by VS2008 causes "side-by-side configuration"-error in Vista
- From: TheOne
- Re: App built by VS2008 causes "side-by-side configuration"-error in Vista
- From: TheOne
- Re: App built by VS2008 causes "side-by-side configuration"-error in Vista
- From: Carl Daniel [VC++ MVP]
- Re: App built by VS2008 causes "side-by-side configuration"-error in Vista
- From: TheOne
- App built by VS2008 causes "side-by-side configuration"-error in Vista
- Prev by Date: Re: Virtual base class constructor
- Next by Date: Re: tools for understanding code
- Previous by thread: Re: App built by VS2008 causes "side-by-side configuration"-error in Vista
- Next by thread: Map drive on local machine.
- Index(es):
Relevant Pages
|