← Back to team overview

coapp-developers team mailing list archive

Re: SXS question

 

Okay then, thanks for the reply.
It all started when I tired to run an exe on a machine which months ago I put 
incorrect dlls *manually* put into the sxs folders that 'depends' said it was 
needing. All to avoid having to create an install.  I fixed that, but...

Next thing I uncovered was a confusing process that the same exe was using 
different sxs locations on different OS's.  I just had to understand why.

Several hours and a serious education later... :-)

-Scott




________________________________
From: Garrett Serack <garretts@xxxxxxxxxxxxx>
To: Scotty <myuta1@xxxxxxxxxxxxx>; "coapp-developers@xxxxxxxxxxxxxxxxxxx" 
<coapp-developers@xxxxxxxxxxxxxxxxxxx>
Sent: Tue, February 28, 2012 6:07:13 PM
Subject: RE: [Coapp-developers] SXS question

 
You’ve kinda got that backward.
 
When SxS looks for an assembly, it first looks for a *policy* with the same 
major/minor version, and sees if there is a redirection in play.
 
It then looks for the forward most version to apply and uses that for the 
manifest.
 
Older policy manifests don’t really know about newer policies ones. 
 
So when it is looking for a policy on your machine, it starts with 30729 and if 
that policy applies, it uses it (so it’s not checking each policy, just the  
highest that matches)
 
G
 
From:coapp-developers-bounces+garretts=microsoft.com@xxxxxxxxxxxxxxxxxxx 
[mailto:coapp-developers-bounces+garretts=microsoft.com@xxxxxxxxxxxxxxxxxxx] On 
Behalf Of Scotty
Sent: Tuesday, February 28, 2012 3:23 PM
To: coapp-developers@xxxxxxxxxxxxxxxxxxx
Subject: [Coapp-developers] SXS question
 
After reading the 'FearTheCowboy' Faq, I was impressed with the simplicity that 
was applied, as I am a newcomer to this. 
So I signed up for CoApp, not sure of what I can contribute or extract from it. 
 But I now turn to this mailing list in the hopes of an answer to my question.
I have already spent several hours trying to get a Phd in WinSXS, while really 
looking for one and only one question answered. 

 
I ran the same C++/Mfc app on two machines.  An XP and a Win7.  'Depends' (not 
the diaper) gave me different loaded SXS dlls on the different machines.
My app said it uses MFC 21022.8 in it's internal manifest.  I checked it.
 
So, my question is:
Does the SXS system always go for the highest version number in the SXS list of 
manifests?  Ignoring the application manifest, provided it's lower then what's 
installed?
 
Example:
The Win7 machine had a public policy file, but the policy under 21022 said to 
take 20718.0 (and above)  and go to 21022.8
The policy under 30729 said to take  20718.0 (and above) and go to 30729, plus 
take 30201.0 (and above) and go to 30729.1
 
So, since my app said use 21022 in it's internal manifest, Windows looked under 
30729 to decide what to do...?
If that's the case, it seems like a waste of file searching to me.  Seems the 
21022 Policy file should say to go to 30729, and save time.
 
Thanks for any feedback.
 
Scott Weber

References