[WiX-users] Create a small update in a bundle

2015-02-05 Thread Martin Johnson
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.

2015-02-05 Thread Joel Budreau
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

2015-02-05 Thread Joel Budreau
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

2015-02-05 Thread Tony
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

2015-02-05 Thread Phil Wilson
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