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