From: TheOne on
I created a simple service with VS2008. The output binary worked fine
on XP, but when I test it on VISTA (Ultimate), it spat out following
error message.

====
"The application has failed to start because its side-by-side
configuration is in correct. Please see the application event log for
more detail."
====

Event viewer entry says:
====
Activation context generation failed for "C:\temp\svc.exe". Dependent
Assembly
Microsoft.VC90.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8"
could not be found. Please use sxstrace.exe for detailed diagnose.
====

When I build the source cpp on VS 6.0. It worked fine on both OS.
When I changed the embed manifest setting to not include, crt runtime
error occurs and dies.

What is the fix for this?

Thanks in advance.

--
Daewon YOON
From: TheOne on
On 3¿ù24ÀÏ, ¿ÀÀü11½Ã41ºÐ, TheOne <daewon.y...(a)gmail.com> wrote:
> I created a simple service with VS2008. The output binary worked fine
> on XP, but when I test it on VISTA (Ultimate), it spat out following
> error message.
>
> ====
> "The application has failed to start because its side-by-side
> configuration is in correct. Please see the application event log for
> more detail."
> ====
>
> Event viewer entry says:
> ====
> Activation context generation failed for "C:\temp\svc.exe". Dependent
> Assembly
> Microsoft.VC90.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8"
> could not be found. Please use sxstrace.exe for detailed diagnose.
> ====
>
> When I build the source cpp on VS 6.0. It worked fine on both OS.
> When I changed the embed manifest setting to not include, crt runtime
> error occurs and dies.
>
> What is the fix for this?
>
> Thanks in advance.
>
> --
> Daewon YOON

After reading a few msdn entries and explore the files in my vista, I
think I now understand what's wrong. However I don't have the clear
solution.

I found out that on my XP on which VS2008 is installed, there's the
specified directory under %WINDIR%\WinSxS directory.

====
C:\WINDOWS\WinSxS>dir x86_Microsoft.vc* /d
[x86_Microsoft.VC80.ATL_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_6e805841]
[x86_Microsoft.VC80.ATL_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_cbb27474]
[x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.1433_x-ww_5cf844d2]
[x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.163_x-ww_681e29fb]
[x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_0de06acd]
[x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_6b128700]
[x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.91_x-ww_0de56c07]
[x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-
ww_f75eb16c]
[x86_Microsoft.VC80.MFCLOC_1fc8b3b9a1e18e3b_8.0.50727.42_x-
ww_3415f6d0]
[x86_Microsoft.VC80.MFCLOC_1fc8b3b9a1e18e3b_8.0.50727.762_x-
ww_91481303]
[x86_Microsoft.VC80.MFC_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_dec6ddd2]
[x86_Microsoft.VC80.MFC_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_3bf8fa05]
[x86_Microsoft.VC90.ATL_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_312cf0e9]
[x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375]
[x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-
ww_597c3456]
[x86_Microsoft.VC90.DebugMFC_1fc8b3b9a1e18e3b_9.0.21022.8_x-
ww_2a62a75b]
[x86_Microsoft.VC90.DebugOpenMP_1fc8b3b9a1e18e3b_9.0.21022.8_x-
ww_72b673b0]
[x86_Microsoft.VC90.MFCLOC_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_11f3ea3a]
[x86_Microsoft.VC90.MFC_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_a173767a]
[x86_Microsoft.VC90.OpenMP_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_ecc42bd1]
====

while on the same directory of VISTA, the specified dir doesn't exist.
([x86_Microsoft.VC90.CRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_d08d0375])

====
c:\Windows\winsxs>dir x86_microsoft.vc* /d
[x86_microsoft.vc80.atl_1fc8b3b9a1e18e3b_8.0.50727.42_none_dc990e4797f81af1]
[x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.163_none_10b3ea459bfee365]
[x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.312_none_10b2ee7b9bffc2c7]
[x86_microsoft.vc80.crt_1fc8b3b9a1e18e3b_8.0.50727.42_none_db5f52fb98cb24ad]
====

This must be the reason for the error message.

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?

Thanks in advance.

--
Daewon YOON
From: Carl Daniel [VC++ MVP] on
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-3e03-4391-8a4d-074b9f2bc1bf&DisplayLang=en

Alternatively, you can build your application with static linking so that
you don't depend on having the redistributables installed.

-cd


From: Carl Daniel [VC++ MVP] on
Carl Daniel [VC++ MVP] wrote:
> have a file named vcresidt_x86.exe (or _x64, if you're on 64-bit) in a

Argh - twised fingers!

vcredist_x86.exe

-cd


From: TheOne on
On 3¿ù24ÀÏ, ¿ÀÈÄ2½Ã23ºÐ, "Carl Daniel [VC++ MVP]"
<cpdaniel_remove_this_and_nos...(a)mvps.org.nospam> 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?
Or should I static-build every module of my product?
Or should I build for each version of OS?
Or should I stick to old VS 6.0?


--
Daewon YOON