I don't believe any of those are missing on Windows 2000.

The program below is one I run to do a sanity check on this kind of thing. I 
assume that protected system files are highly unlikely to be missing because 
they are part of the core OS. It doesn't work on Vista because of the change in 
the way protection is implemented.

The alternative is to call SfcIsFileProtected() on those files in the (system) 
folder like MSI does to check if you should replace them (I don't mean at 
install time, I mean as a further check that these are protected).


#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <sfc.h>

PROTECTED_FILE_DATA aFile = {0};
FILE *stream;

int main(int argc, char* argv[])
{
    BOOL res = true;
        long i=0;

        stream = fopen( "sfcfiles.txt", "w" );
        while (res)
        {
                res = SfcGetNextProtectedFile (NULL, &aFile) ;
                if (res)
                        fprintf(stream, "%S\n", aFile.FileName);
        }
        fclose (stream);
        return 0;
}


Phil Wilson

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Tony Juricic
Sent: Tuesday, May 27, 2008 12:27 PM
To: wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] Merge Module system folder Id clash problem

I am installing the following modules:

      <Merge Id="MM_CRT" Language="0" SourceFile="$(var.REDIST)msvcrt.msm" 
DiskId="1" />
      <Merge Id="MM_CP60" Language="0" SourceFile="$(var.REDIST)msvcp60.msm" 
DiskId="1" />
      <Merge Id="MM_CIRT" Language="0" SourceFile="$(var.REDIST)msvcirt.msm" 
DiskId="1" />
      <Merge Id="MM_MFC" Language="0" SourceFile="$(var.REDIST)mfc42.msm" 
DiskId="1" />
      <Merge Id="MM_OLE" Language="0" SourceFile="$(var.REDIST)oleaut32.msm" 
DiskId="1" />
      <Merge Id="MM_COM" Language="0" SourceFile="$(var.REDIST)comcat.msm" 
DiskId="1" />

which, in terms of the files, is:

asycfilt.dll
comcat.dll
mfc42.dll
msvcirt.dll
msvcp60.dll
msvcrt.dll
oleaut32.dll
olepro32.dll
stdole2.tlb

At this time SystemFolder entry in my project.wxs is empty (i.e. serves as the 
placeholder for the files that I'm about to add) and I am not going to add any 
of the files listed above. So there should be no clash.

I am somewhat reluctant to let go of these modules, fearing that something may 
still be missing on some Windows 2000 systems.


From: Wilson, Phil [mailto:[EMAIL PROTECTED]
Sent: Tuesday, May 27, 2008 12:28 PM
To: wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] Merge Module system folder Id clash problem

What's the list of files that you're trying to install from the merge modules?  
The reason you're having difficulty finding a system without them is that 
they've been included as part of the OS starting with Windows 2000, and they 
are protected files anyway.  So you may not need to install mfc42, mfc42u, 
atl.dll, msvcrt etc.

Phil Wilson

From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Tony Juricic
Sent: Tuesday, May 27, 2008 7:09 AM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Merge Module system folder Id clash problem

I install some files in Windows System32 using directory declaration
like:
 <Directory Id="SystemFolder" SourceName="System32">
...
Additionally, my project has VC++ 6 Merge Modules included and these
also refer to system folder, causing this warnings like the following:
Warning 2       The Directory table contains a row with primary key(s)
'SystemFolder' which cannot be merged from the merge module '.\Redist
\msvcp60.msm'.  This is likely due to collision of rows with the same
primary key(s) (but other different values in other columns) between
the database and the merge module.      C:\Users\Public\Documents\VS
Projects\WixTestProjects\MyProj\Main.wxs
I have a difficult time finding the machine on which VC 6 runtime is
not already installed, so I can not easily test if installation would
succeed on such a system in spite of this warning.
Does anybody have similar experiences with Merge Modules? What would
you recommend to avoid the warnings?
Thanks!


-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

Reply via email to