[WiX-users] Create a small update in a bundle
I have an exe which installs my system, I am trying to create a small update which will amend 6 dlls and add a new file. As a small update I have changed the version, updating from x.x.0 to x.x.1, of the bundle itself and both chained msi's. I have left the product id unchanged, package id is set to * so a new one is generated. When I run the update the new file is added but the amended dlls are not replaced, the version numbers have all been incremented. I have run the installer with logging and the following is shown, I think this shows it is not being updated MSI (s) (38:E8) [14:59:11:081]: Component: ; Installed: Local; Request: Null; Action: Null If I create it as a minor upgrade by changing the product id then of course the resultant system is correct, but seeing as this does a reinstall of unchanged files this will be a headache for users. Have I missed something obvious? Or am I doing it wrong? Martin Johnson -- Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] How to show custom error text on SetupCompleteError dialog when a deferred CA fails.
I think the standard is to have the deferred action make a call to MsiProcessMessage (not MessageBox), passing in a reference to the Error table (that way your displayed strings won’t live inside dll resource files). https://msdn.microsoft.com/en-us/library/aa371247%28v=vs.85%29.aspx On Feb 4, 2015, at 11:08 AM, Kashif Md. mdkashi...@gmail.com wrote: Hi, I have a deferred Custom action that fails in some scenarios. Since this custom action is responsible for installling some licensing libraries for my product hence I cannot continue installation if this CA fails. I want to show a custom error message to the user if this CA has failed the installation. To capture the failure from this CA I write a registry value signifying whether the CA was successful or not. But how do read this registry, set a property based on this CA and then use that property to show/hide my text on SetupCompleteError dialog. As soon as CA fails, rollback starts and then it does not execute any immediate custom actions. I cannot even use a roll back CA because it cannot set any property. Can someone please help and let me know if there is a way to do this other than throwing up a message box to the user? Thanks, -kashif -- Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] WiX MSI or Bundle - calling Windows Explorer with a specified folder
You can have a type-34 custom action launch “C:\Windows\explorer.exe path”. CustomAction Id=“LaunchExplorer” Directory=“[WindowsFolder]” ExeCommand=“explorer.exe quot;[MyPath]quot;” Execute=“whatever” Return=“ignore” / On Feb 4, 2015, at 9:52 AM, Tall Tyke chris.mo...@eque2.com wrote: Hi, I posted a question yesterday, which was a bit bizarre and didn't get any responses - so we have changed tack a bit and now want our installer ( either a WiX 3.9 MSI or our bundle ) to run Windows Explorer opening up at a folder path with give it - is that possible ? Cheers, Chris. -- View this message in context: http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/WiX-MSI-or-Bundle-calling-Windows-Explorer-with-a-specified-folder-tp7599135.html Sent from the wix-users mailing list archive at Nabble.com. -- Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users -- Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
[WiX-users] ICE64: Directory XXX in user profile but not RemoveFile table
My per-user, non-elevated install's directory structure looks like this... Directory Id=TARGETDIR Name=SourceDir Directory Id=AppDataFolder Directory Id=XXX Name=Xxx/ /Directory /Directory I use it in ComponentGroup like this... ComponentGroup Id=MyComponents Directory=XXX Component Id=comp Guid=123 RegistryKey Root=HKCU Key=$(var.VersionRegPath) RegistryValue Name=Version Type=string Value=$(var.ProductVersion) KeyPath=yes Action=write/ /RegistryKey File.../ Do I have to explicitly add the directory XXX to the remove file table because none of the files installed are keypath'd in that folder? -- Tony -- Dive into the World of Parallel Programming. The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ ___ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users
Re: [WiX-users] Custom action System.IO.DirectoryNotFoundException on second Installation
The proper way is RemoveFile. Windows Installer supplies these things so you don't need to write code and get yourself in this kind of trouble :) --- Phil Wilson On Wed, Feb 4, 2015 at 7:47 PM, Sarvagya Pant sarvagya.p...@gmail.com wrote: Hi Phil and Jacob. One approach I could do is create another function in Custom action that will attempt to remove the residual files during uninstall. ie: [CustomAction] public static ActionResult ClearLeftOvers(Session session) { session.Log(Call of ClearLeftOvers); string conf = C:\\lpaa; try { System.IO.Directory.Delete(conf, true); } catch (Exception e) { session.Log(ClearLeftOvers Directory Deletion Exception: + e.ToString()); } session.Log(Deletion of Leftovers); return ActionResult.Success; } and in wix Binary Id=SetupCA SourceFile=G:\visual studio stuffs\SetupCA\SetupCA\bin\Release\SetupCA.CA.dll/ CustomAction Id=WRITEFILETODISK Execute=immediate BinaryKey=SetupCA DllEntry=WriteFileToDisk / CustomAction Id=ClearLeftOvers Execute=immediate BinaryKey=SetupCA DllEntry=ClearLeftOvers / InstallExecuteSequence Custom Action=WRITEFILETODISK Before=InstallFinalizeNOT REMOVE/Custom Custom Action=ClearLeftOvers Before=InstallFinalizeREMOVE~=ALL/Custom /InstallExecuteSequence Is this approach good to go? If not I would use Jacob's idea of using RemoveFile. And Phil the default value of Execute is Immediate as the doc says. If I implement Deferred, I should also define Rollback too isn't it? Can you pinpoint the difference between these two. The doc seems vague to me. Thanks On Thu, Feb 5, 2015 at 1:17 AM, Phil Wilson phildgwil...@gmail.com wrote: That looks like an immediate custom action, and that's: 1. Something you shouldn't do as an immediate custom action. If you really really need to do that, take heed of Jacob's advice, but make it deferred and add a rollback custom action to undo all that in case the install fails. 2. Immediate custom actions are not elevated (even if the installing user is an admin). That's most likely the reason why you can't write to that location. --- Phil Wilson On Wed, Feb 4, 2015 at 6:48 AM, Hoover, Jacob jacob.hoo...@greenheck.com wrote: Is the file/directory in use when the delete was attempted? Is there a reason you have to delete the file instead of just overwriting it? Have you pondered using a RemoveFile element to explicitly remove the files you are creating in your CA on uninstall? -Original Message- From: Sarvagya Pant [mailto:sarvagya.p...@gmail.com] Sent: Wednesday, February 04, 2015 1:25 AM To: General discussion about the WiX toolset. Subject: [WiX-users] Custom action System.IO.DirectoryNotFoundException on second Installation I have been making a Wix Installer that is supposed to install the contents and fetches the parameters passed in terminal and create files. ie. msiexec /i installer.msi /l*v out.log IPADDRESS=1.1.1.1 will create a file lpa.config. I have following wix file and custom action file. WIX: ?xml version=1.0 encoding=UTF-8? Wix xmlns=http://schemas.microsoft.com/wix/2006/wi; Product Id=* Name=CustomWixInstallerWithCustomAction Language=1033 Version=1.0.0.0 Manufacturer=LogPoint UpgradeCode=ba9015b9-027f-4451-adb2-e38f9168a850 Package InstallerVersion=200 Compressed=yes InstallScope=perMachine / MajorUpgrade DowngradeErrorMessage=A newer version of [ProductName] is already installed. / MediaTemplate EmbedCab=yes / Feature Id=ProductFeature Title=CustomWixInstallerWithCustomAction Level=1 ComponentGroupRef Id=ProductComponents / /Feature /Product Fragment Directory Id=TARGETDIR Name=SourceDir Directory Id=WindowsVolume Directory Id=INSTALLFOLDER Name=lpaa / /Directory /Directory /Fragment Fragment ComponentGroup Id=ProductComponents Directory=INSTALLFOLDER Component Id=SomeRandomEXE File Source =G:\SarVaGYa\myworkspace\LatestLpa\lpa\lpa_c\build_win\src\lpa\Release\lpa.exe / /Component /ComponentGroup Binary Id=SetupCA SourceFile=G:\visual studio stuffs\SetupCA\SetupCA\bin\Release\SetupCA.CA.dll/ CustomAction Id=WRITEFILETODISK Execute=immediate BinaryKey=SetupCA DllEntry=WriteFileToDisk / InstallExecuteSequence Custom Action=WRITEFILETODISK Sequence=2NOT Installed AND NOT PATCH/Custom /InstallExecuteSequence /Fragment /Wix and the Custom Action File namespace SetupCA { public class CustomActions { [CustomAction] public static ActionResult WriteFileToDisk(Session