Werbung: SecurityConsole.de verwaltet Ihre Computer mit Security Essentails aus der Cloud!
30 Tage kostenfrei testen und 20% Rabatt für Ihre Bestellung mit Promocode: WBF2685582
(Promocode gültig bis 31.12.2011)

Group:  English: General » microsoft.public.windows.msi
Thread: CRT merge module problem on Vista 64

HTVi
TV Discussion Newsgroups

CRT merge module problem on Vista 64
Rob Hamflett <rob[ at ]snsys.com> 11/5/2008 1:33:53 PM
I've got a problem with the CRT merge modules that only seems to affect Vista 64. I'm using
Microsoft_VC80_CRT_x86.msm and policy_8_0_Microsoft_VC80_CRT_x86.msm in my installer. On a clean XP
system the installer fails to start my service when these merge modules are missing. If I add them
then everything is fine, so I guess they work. This does not seem to be the case on Vista 64. The
service always fails to start because of the missing dependency. Using Orca I saw that
MsiPublishAssemblies appears after StartServices. Even though it works like this under XP, I tried
moving StartServices to after MsiPublishAssemblies, but this has no affect. At the point where the
installer tells me that it couldn't start the service, there are 2 instances of one of the DLLs in
the Windows\WinSxS folder, but nethier of these locations match the folders that appear in the log
of the installation.

If I just install the relevant DLLs alongside the executable then the service runs fine. I might
have to resort to this.

Is anyone aware of any gotcha I've missed?

Rob
Re: CRT merge module problem on Vista 64
"Phil Wilson" <phil.wilson[ at ]wonderware.something.com> 11/5/2008 6:41:31 PM
First, it's nothing to do with publishing assemblies. What's happening is
that on Vista Windows uses the .NET Runtime (Fusion) to install the CRT into
WinSxS in the same way that it installs assemblies into the GAC. In both
cases the files are not actually available until the Commit stage of the
install at InstallFinalize.

--
Phil Wilson
Definitive Guide to Windows Installer
http://www.apress.com/book/view/1590592972


"Rob Hamflett" <rob[ at ]snsys.com> wrote in message
news:OoXzms0PJHA.4884[ at ]TK2MSFTNGP04.phx.gbl...
[Quoted Text]
> I've got a problem with the CRT merge modules that only seems to affect
> Vista 64. I'm using Microsoft_VC80_CRT_x86.msm and
> policy_8_0_Microsoft_VC80_CRT_x86.msm in my installer. On a clean XP
> system the installer fails to start my service when these merge modules
> are missing. If I add them then everything is fine, so I guess they
> work. This does not seem to be the case on Vista 64. The service always
> fails to start because of the missing dependency. Using Orca I saw that
> MsiPublishAssemblies appears after StartServices. Even though it works
> like this under XP, I tried moving StartServices to after
> MsiPublishAssemblies, but this has no affect. At the point where the
> installer tells me that it couldn't start the service, there are 2
> instances of one of the DLLs in the Windows\WinSxS folder, but nethier of
> these locations match the folders that appear in the log of the
> installation.
>
> If I just install the relevant DLLs alongside the executable then the
> service runs fine. I might have to resort to this.
>
> Is anyone aware of any gotcha I've missed?
>
> Rob


Re: CRT merge module problem on Vista 64
Rob Hamflett <rob[ at ]snsys.com> 11/6/2008 8:49:59 AM
That's good to know. I had thought about that, and tried putting StartServices after
InstallFinalize just to see what would happen. I rather expected this to fail, and so wasn't too
surprised when I got an error that I think was something about not being able to write the script.
Our IT guy got it working on a new machine after he had installed all the latest updates to Vista.
I think I'll just have to work out which one and take things from there. If nothing else I can just
not start the service. It'll be started by the my UI app if it's not already running, so users will
just have to run the UI at least once.

Thanks for the help.

Rob

Phil Wilson wrote:
[Quoted Text]
> First, it's nothing to do with publishing assemblies. What's happening is
> that on Vista Windows uses the .NET Runtime (Fusion) to install the CRT into
> WinSxS in the same way that it installs assemblies into the GAC. In both
> cases the files are not actually available until the Commit stage of the
> install at InstallFinalize.
>
Re: CRT merge module problem on Vista 64
Rob Hamflett <rob[ at ]snsys.com> 11/14/2008 11:19:14 AM
I've been rethinking this problem and I can't help but wonder, how are we meant to install a service
that requires the CRT on Vista 64? Is there a different way of doing it for this version of the OS?
Are we supposed to bootstrap the CRT installation first?

Rob

Phil Wilson wrote:
[Quoted Text]
> First, it's nothing to do with publishing assemblies. What's happening is
> that on Vista Windows uses the .NET Runtime (Fusion) to install the CRT into
> WinSxS in the same way that it installs assemblies into the GAC. In both
> cases the files are not actually available until the Commit stage of the
> install at InstallFinalize.
>
Re: CRT merge module problem on Vista 64
"Phil Wilson" <phil.wilson[ at ]wonderware.something.com> 11/14/2008 7:22:37 PM
Some people install the CRT as a prereq yes, but others bind to the CRT
statically.

--
Phil Wilson
Definitive Guide to Windows Installer
http://www.apress.com/book/view/1590592972


"Rob Hamflett" <rob[ at ]snsys.com> wrote in message
news:eAfnTrkRJHA.4524[ at ]TK2MSFTNGP06.phx.gbl...
[Quoted Text]
> I've been rethinking this problem and I can't help but wonder, how are we
> meant to install a service that requires the CRT on Vista 64? Is there a
> different way of doing it for this version of the OS? Are we supposed to
> bootstrap the CRT installation first?
>
> Rob
>
> Phil Wilson wrote:
>> First, it's nothing to do with publishing assemblies. What's happening is
>> that on Vista Windows uses the .NET Runtime (Fusion) to install the CRT
>> into WinSxS in the same way that it installs assemblies into the GAC. In
>> both cases the files are not actually available until the Commit stage of
>> the install at InstallFinalize.
>>


Re: CRT merge module problem on Vista 64
Rob Hamflett <rob[ at ]snsys.com> 11/27/2008 10:33:52 AM
Just though I'd post my fix here for anyone else who comes across this thread. I stopped using
Windows Installer to start the service for me and added a commit Custom Action to it at the end of
the install.

Rob

Rob Hamflett wrote:
[Quoted Text]
> I've been rethinking this problem and I can't help but wonder, how are
> we meant to install a service that requires the CRT on Vista 64? Is
> there a different way of doing it for this version of the OS? Are we
> supposed to bootstrap the CRT installation first?
>
> Rob
>
> Phil Wilson wrote:
>> First, it's nothing to do with publishing assemblies. What's happening
>> is that on Vista Windows uses the .NET Runtime (Fusion) to install the
>> CRT into WinSxS in the same way that it installs assemblies into the
>> GAC. In both cases the files are not actually available until the
>> Commit stage of the install at InstallFinalize.
>>
Handling the "start" as a custom action...
"James Hunter Ross" <james.ross[ at ]oneilsoft.com> 12/10/2008 7:37:06 PM
I have the same issue. I guess I can keep the StopServices action as-is,
without conditions. I like the service to be stopped during uninstall or
upgrade to a newer version.

In fact, when versionNT < 600, I think I'll just allow StartServices to run
as-is.

Since starting the service will not be possible because of CRT/MFC
dependencies when version NT >= 600, I'll need to do a custom action like
you did. What did you do for your CA? I though about invoking NET START
MyServiceName as an easy command to run. Did you do it as VBScript?
CustomDLL function?

I know I'm responding a couple of months after the fact, but hey, it's worth
a try. Thanks!

James


Re: Handling the "start" as a custom action...
Rob Hamflett <rob[ at ]snsys.com> 12/11/2008 8:03:55 AM
James Hunter Ross wrote:
[Quoted Text]
> What did you do for your CA?

One of the executables we install has the ability to start and stop the service, so I call that with
the appropriate arguments. At some point in another installer I think I might have cheated a bit
and called C:\WINDOWS\system32\sc.exe.

Rob

Home | Search | Terms | Imprint Contact
Newsgroups Reader - provided by WiredBox.Net
Suche nach Orten, Städten, Postleitzahlen, Vorwahlen, Kfz-Kennzeichen