The reason for the warnings is that the VS CRT merge modules aren't
particularly well authored. A validation run on the merge modules would have
revealed these problems to the authors at Microsoft.
Windows Installer databases are really property databases - not using a
fixed schema, just a bunch of properties for each row - but at the same
time, have a fixed schema declared in the _Validation table. The actual
package-building features are happy to allow you to insert anything you like
anywhere. Only post-validation with the ICEs reveals where the resulting
output doesn't match the declared schema. The names of the identifiers are
longer than the length supported for an identifier, for several of the
identifiers listed.
As for SxsInstallCA/SxsUninstallCA, these should normally have been
modularized, i.e. their identifiers suffixed with the module's GUID, so that
there wasn't an identifier clash between modules or between the module and
the outermost install. However, given what this does - install to the
side-by-side Win32 assembly store - it probably would have been hard to
ensure it only did the work from the current module rather than for all
modules, so it presumably wasn't modularized so that it only runs once.
There's some reason that these modules use custom actions to install to the
side-by-side assembly store, rather than the built-in functionality (on
Windows XP and Windows Server 2003 - the built-in functionality is used on
Windows Vista).
I'm not sure where the InstallExecuteSequence (etc) stuff is coming from - I
can't see these identifiers listed in the ModuleInstallExecuteSequence in
the copy of DebugCRT MSM that I have. I will note that you shouldn't be
distributing the debug CRT outside your organization (only for internal
testing), but the release CRT MSMs have the same problem.
--
Mike Dimmick
-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Francois
Retief
Sent: 31 July 2007 10:28
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Getting rid of the warnings when using the VC8 CRTmerge
modules
Hello,
From reading blogs on the web, the way to add the merge modules for the VC8
CRT libraries is shown in the WXS code below. But I get a lot of warnings
in
the process.
We are using Visual Studio 2005 SP1 and Wix v3.0.2925
What is the reason for all the warnings?
What can be done to fix the warnings? Or is there a bug/problem with the
CRT
merge modules?
Cheers
Francois
?xml version=1.0 encoding=UTF-8?
Wix xmlns=http://schemas.microsoft.com/wix/2006/wi;
Product Id=d1a9a77e-0717-404e-9d84-eb19ba6032a0 Name=MyWixTestApp
Language=1033 Version=1.0.0.0
Manufacturer=me
UpgradeCode=53518b27-3cb6-4224-8614-9a74207ccbf9
Package InstallerVersion=200 Compressed=yes /
Media Id=1 Cabinet=WixProject1.cab EmbedCab=yes /
Directory Id=TARGETDIR Name=SourceDir
Directory Id=ProgramFilesFolder
Directory Id=MyCompanyFolder Name=MyCompany
Directory Id=INSTALLDIR Name=MyProduct-1.x
Component Id=ProductComponent
Guid=b9396cba-4878-4413-b81b-4ec1ace56eeb
!-- TODO: Insert your files, registry keys, and other
resources here. --
File Id=ProductExeFile
Source=$(var.ConsoleApplication1.TargetPath) /
/Component
/Directory
/Directory
/Directory
Merge Id=CRT SourceFile=C:\Program Files\Common Files\Merge
Modules\Microsoft_VC80_DebugCRT_x86.msm
Language=1033 DiskId=1 /
Merge Id=CRT Policy SourceFile=C:\Program Files\Common Files\Merge
Modules\policy_8_0_Microsoft_VC80_DebugCRT_x86.msm
Language=1033 DiskId=1 /
/Directory
Feature Id=ProductFeature Title=MyTestApp Level=1
ComponentRef Id=ProductComponent /
MergeRef Id='CRT' /
MergeRef Id='CRT Policy' /
/Feature
/Product
/Wix
-- Build started: Project: ConsoleApplication1, Configuration: Debug Any
CPU --
ConsoleApplication1 -
C:\workspace\WixProject1\ConsoleApplication1\bin\Debug\ConsoleApplication1.e
x
e
-- Build started: Project: WixProject1, Configuration: Debug Any CPU
--
C:\Program Files\Windows Installer XML v3\bin\candle.exe
-dDebug -dDevEnvDir=C:\Program Files\Microsoft Visual Studio
8\Common7\IDE\\ -dSolutionDir=C:\workspace\WixProject1\ -dSolutionExt=.sln
-dSolutionFileName=WixProject1.sln -dSolutionName=WixProject1
-dSolutionPath=C:\workspace\WixProject1\WixProject1.sln
-dConsoleApplication1.Configuration=
-dConsoleApplication1.FullConfiguration=
-dConsoleApplication1.Platform=
-dConsoleApplication1.ProjectDir=C:\workspace\WixProject1\ConsoleApplication
1
\ -dConsoleApplication1.ProjectExt=.csproj
-dConsoleApplication1.ProjectFileName=ConsoleApplication1.csproj
-dConsoleApplication1.ProjectName=ConsoleApplication1
-dConsoleApplication1.ProjectPath=C:\workspace\WixProject1\ConsoleApplicatio
n
1\ConsoleApplication1.csproj