Ok, so I thought that I provide the solution of how to use the StringTools.dll contained in the msiext found http://msiext.codeplex.com/releases/view/39468 as I myself spend to much time to get it to work!! and maybe this could help someone else.. Put the StringTools.dll in the same folder as the .wxs file. Finally put those tags into your .wxs file. The String_Replace documentation can be found here.. http://code.dblock.org/Source/msiext/1.2/Docs/_string_tools_impl_8h.html#a4e624060174da1bf53aea402c2e29d7a STRING_VALUE_FROM = "C:\Program Files (x86)\Microsoft Help Viewer\v1.0\HelpLibManager.exe" .. this is the string faulty converted when read from registry containing the " (x86)" string we want to remove. *STRING_REPLACE_FROM = '"(x86)\" ... this is what should be replaced **STRING_REPLACE_TO = "\" ... this is what we should replace with* STRING_VALUE_TO = ... this will be filled with the replaced string after the String_Replace CustomAction have been run...
<Binary Id='StringTools' SourceFile='StringTools.dll' /> <Property Id="HELPINSTALLDIR"> <RegistrySearch Id="HelpRegistry" Root="HKLM" Key="SOFTWARE\Microsoft\Help\v1.0" Name="AppRoot" Type="raw" /> </Property> <Property Id='STRING_REPLACE_FROM' Value=' (x86)\'/> <Property Id='STRING_REPLACE_TO' Value='\'/> <CustomAction Id="String_Replace" Return="check" Execute="immediate" BinaryKey='StringTools' DllEntry='String_Replace' /> <CustomAction Id="SetSTRING_VALUE_FROM" Return="check" Execute="immediate" Property="STRING_VALUE_FROM" Value="[HELPINSTALLDIR]HelpLibManager.exe"/> <CustomAction Id="DeployHELP3" Return="check" Property="STRING_VALUE_TO" Execute="deferred" Impersonate="no" ExeCommand="/product VS /version 100 /locale en-us install /sourceMedia "HelpContentSetup.msha" /content [CommonAppDataFolder]Microsoft\HelpLibrary /silent"/> <CustomAction Id="UnDeployHELP3" Return="check" Property="STRING_VALUE_TO" Execute="deferred" Impersonate="no" ExeCommand="/product VS /version 100 /locale en-us /uninstall /silent /vendor "VendorName" /mediaBookList "Help Entries" /productName YourProductName"/> <InstallExecuteSequence> ... <Custom Action="SetSTRING_VALUE_FROM" After="ValidateProductID">STRING_VALUE_FROM=""</Custom> <Custom Action="String_Replace" After="SetSTRING_VALUE_FROM">String_Replace=""</Custom> ... <Custom Action="UnDeployHELP3" After="MsiUnpublishAssemblies">$MainDll = 2</Custom> <Custom Action="DeployHELP3" After="MsiPublishAssemblies">$MainDll > 2</Custom> </InstallExecuteSequence> I think thats all... glhf.. /Jimmie 2010/5/14 Matt Johnson <ma...@timeamerica.com> > Not sure why. I had the same problem. I used the StringTools custom > action from the msiext project to take the " (x86) back out. If there's an > easier way, I'd be glad to know. > > BTW - I checked that specific key, and it is indeed just "Program Files", > in both the regular x64 root and the wow x86 key - so it's not that it's > pulling from the wrong place. > > Perhaps there's a property to set to tell MSI not to do this replacement? > > Matt Johnson MCPD, MCTS, MCSD, MCDBA > Director of Application Development > Time America, Inc. > ma...@timeamerica.com | www.timeamerica.com > > > -----Original Message----- > From: Jimmie Eriksson [mailto:eriksson.jim...@gmail.com] > Sent: Friday, May 14, 2010 7:42 AM > To: wix-users@lists.sourceforge.net > Subject: [WiX-users] RegistrySearch converts value data > > Hi > > Anyone who can tell me why my RegistrySearch converts the value contained > in > the registry? > > <Property Id="HELPINSTALLDIR"> > <RegistrySearch Id='HelpInstallRegistry' Type='raw' Root='HKLM' > Key='SOFTWARE\Microsoft\Help\v1.0' Name='AppRoot' /> > </Property> > > The actual value in registry is... > AppRoot = C:\Program Files\Microsoft Help Viewer\v1.0\ > > But according to the log file upon installation C:\Program Files\Microsoft > Help Viewer\v1.0\ converts into C:\Program Files *(x86)*\Microsoft Help > Viewer\v1.0\ > when using it in a custom action > > <CustomAction Id="SetHELPInstaller" Return="check" Execute="immediate" > Property="HELPInstaller" Value="[HELPINSTALLDIR]HelpLibManager.exe" /> > > from log.. > MSI (s) (08:78) [16:20:59:102]: PROPERTY CHANGE: Adding HELPInstaller > property. Its value is 'C:\Program Files (x86)\Microsoft Help > Viewer\v1.0\HelpLibManager.exe' > > The folder on disk: C:\Program Files\Microsoft Help Viewer\v1.0\ > > So this seems like a bug where all strings containing Program Files found > in > registry converts to Program Files (x86) > > /Jimmie > > ------------------------------------------------------------------------------ > > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > > > ------------------------------------------------------------------------------ > > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > ------------------------------------------------------------------------------ _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users