Re: [WiX-users] How to best install generic system withcustomerspecific add-ins

2009-10-23 Thread Thomas Due
Fair enough, I'll try to explain the situation a little better, but Sascha's 
suggestion about shared fragments files makes absolute sense now that I think 
about it. It hadn't even crossed my mind. I would to be careful about how I 
shared them, so I would only have one actual copy of the fragments files, 
otherwise I would face hell updating all copies when there were changes to the 
common files.

Anyway: 

I have a service with a couple of common libraries, in itself this service does 
nothing. It merely forms an extensible framework for customer specific 
functions. 

Then I have the customer specific functions, these are just dll assemblies 
which are added to the service and supplies the actual functionality. 

So, instead of having to copy-and-paste a generic WiX project to each customer 
project, I thought I would make a generic module which contains the service and 
common assemblies, the necessary functionality for installing and starting the 
service etc. 
Additionally it would contain the UI sequence but allow for customer specific 
dialogs.

This module would then be added to a customer specific installer which 
contained the remaining logic, like adding the customer extension to the 
framework and other various customer specific actions. 

This is what I want, how do I do that best? 

Merge Modules? 
WiX libraries? 
Shared WiX fragments?

Best regards,

Thomas Due



-Original Message-
From: Rob Mensching [mailto:r...@robmensching.com] 
Sent: 22. oktober 2009 17:41
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] How to best install generic system 
withcustomerspecific add-ins

If Merge Modules look like they will work, I'd use .wixlibs instead (
http://www.robmensching.com/blog/posts/2008/10/10/What-are-.wixlibs-and-why-would-you-use-them).
The WiX toolset's reusable functionality (from the Extensions and all the
UI) use .wixlibs. The Wix.chm has a nice section on how to customize
dialogs.  I'd start there. Without more details about your exact project
it's hard to provide more detailed advice. smile/

On Thu, Oct 22, 2009 at 1:27 AM, Thomas Due thomas@scanvaegt.dk wrote:

 I have been studying the documentation and the tutorial and come to the
 conclusion that patching is out, since that is essentially just the
 difference between two installers which is exactly what I want to avoid;
 Writing two installers...

 So, my next thought is: How about merge modules then?

 What I mean is, that I put all the common stuff into a merge module, it
 seems that it can contain all the logic regarding files and components
 and installing/starting services etc.

 Then I write the installer for each customer, which contains only the
 customer specific bits and adds the merge module containing all the
 common bit etc.

 So far so good. But how about the UI? Can I contain MOST of the gui in
 the merge module and only add a few customer specific dialogs (if
 necessary) in the customer installer, and if so, how do inject dialogs
 like that?

 Best regards,
 Thomas Due - Software Developer

 -Original Message-
 From: Thomas Due
 Sent: 22. oktober 2009 09:13
 To: General discussion for Windows Installer XML toolset.
 Subject: [WiX-users] How to best install generic system with
 customerspecific add-ins

 I am currently finishing up on a generic system which we will sell to
 many different customer with different needs. So, as a result this
 generic system is based on extensions, or add-ins.

 Now I am thinking how to best write an installer for this.
 Although I could copy-n-paste the entire WiX project every time I make a
 new customer-specific extension, I think that is quite the wrong way to
 go about writing the installer for this system.

 So, I am thinking patches, or maybe transformations?

 An installer for the system itself, and then a patch with the customer
 specific bits. This way, I get to maintain a single installer with
 upgrade codes etc. and a simple patch installer for each customer
 project. On paper that should be simple enough, but how do I do that?

 I am currently still learning WiX, so my knowledge is, at best, shaky.
 So I need a bit of help.

 How do I create patches for a specific installer, and is the plan
 actually sound?

 Best regards,
 Thomas Due - Software Developer





 --
 Come build with us! The BlackBerry(R) Developer Conference in SF, CA
 is the only developer event you need to attend this year. Jumpstart your
 developing skills, take BlackBerry mobile applications to market and stay
 ahead of the curve. Join us from November 9 - 12, 2009. Register now!
 http://p.sf.net/sfu/devconference
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users




-- 
virtually, Rob Mensching - http://RobMensching.com LLC


[WiX-users] How to write a Bootstrapper

2009-10-23 Thread Sunkesula, Srivardhan
Hi,

  I want to install MySql and Jboss along with my product.
  I have lot of queries on how to write a Bootstraper for this.

   I. Is this BootStraper is an XML Scripting or a VC++ program?
  2. How to add the sequence of my msi installations?
  3. I want to install these third party products in the same path as my
product, once user selects the path of installation from the UI.
Please let me know if this is possible.
 4. How to compile this BootStrapper. And what is the final output of
compiling and linking. Is it an MSI again or something else.

A sample Bootstrap program would be of great help to me.

Thanks  Regards,
Srivardhan.
 


--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] How to write a Bootstrapper

2009-10-23 Thread Sankha Biswas (Extended Results Inc)
Hi,

I also have similar kind of requirement but little different.
I want to first install OfficePia.exe as prerequisitre first and then want to 
resume my actual msi installation.

Can anybody help us to provide an sample of how to take care of two separate 
installation

a. Install Prerequisite-- I need to execute and .exe file through Wix
b. Install Main Program

I would appreciate any help.

Thanks,
Sankha

-Original Message-
From: Sunkesula, Srivardhan [mailto:srivardhan.sunkes...@netapp.com]
Sent: Friday, October 23, 2009 12:13 AM
To: General discussion for Windows Installer XML toolset.
Subject: [WiX-users] How to write a Bootstrapper

Hi,

  I want to install MySql and Jboss along with my product.
  I have lot of queries on how to write a Bootstraper for this.

   I. Is this BootStraper is an XML Scripting or a VC++ program?
  2. How to add the sequence of my msi installations?
  3. I want to install these third party products in the same path as my
product, once user selects the path of installation from the UI.
Please let me know if this is possible.
 4. How to compile this BootStrapper. And what is the final output of
compiling and linking. Is it an MSI again or something else.

A sample Bootstrap program would be of great help to me.

Thanks  Regards,
Srivardhan.



--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Using a CustomAction to modify a dialog

2009-10-23 Thread Blair
MSDN's overview is here: http://msdn.microsoft.com/library/aa368036.aspx

A control can both publish (send out) and subscribe to (receive from others)
events. However, not all controls can do both, and what they can do varies
by control, by event, and by whether they are reporting or listening.
Further, you can publish to an event OR a property.

Publishing a property means that when the control would have fired that
event, some property is set to the event's value.
Publishing an event means shouting out: Hey, xyz(abc) just happened! where
xyz is the event name and abc is the event value.
Subscribing to an event hooks some control's attribute to an event, such
that when that event is published, that control's attribute will be set to
the event's value.

Some events have built-in listeners, others don't. All of the documented
defined events are listed on this page:
http://msdn.microsoft.com/library/aa368043.aspx

Since I don't use internal UI all that much, I forgot you can't call
MsiProcessMessage from a custom action called via DoAction from an event.
So, the only thing you can do with your custom action is change properties.

Properties used for conditions are only evaluated when the dialog is first
populated, so the only way to refresh the dialog is to replace the dialog
with itself (assuming that can be done, which I don't honestly know). You
would have to use the same event that calls your custom action with a later
order value so that the activity that subscribes to that event runs after
your custom action has completed.

The event mapping is set, so typically what happens is you get the
following kind of model:

You can use some event from some control to fire your CA, which evaluates
and sets a property.
That same event can then trigger a pop-up dialog based on your property if
you are reporting an error condition, which returns to your dialog when the
user acknowledges it and tries again.
That same event can move to another dialog based on another state of your
property, for example, you passed validation.

The above model is a type of PID validation sample I remember from the SDK a
while back, but I am having trouble finding just where I found it before.
When/if I find it, I will show what the markup looks like to implement it. I
know it isn't just like what you are looking for, but we have said before
that the internal UI is quite limited. There are a whole other set of
limitations on the external and embedded UIs, but we don't live in a perfect
world, apparently.

-Original Message-
From: Dan Giambalvo [mailto:danie...@microsoft.com] 
Sent: Thursday, October 22, 2009 4:07 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Using a CustomAction to modify a dialog

I'm sorry, I'm having trouble wrapping my head around how this subscribe
model works, and also difficulty figuring out how to fire the appropriate
events from within the CustomAction (currently in VBScript.)  Can you
possibly offer a small bit of XML to demonstrate your thinking? 

-Original Message-
From: Blair [mailto:os...@live.com] 
Sent: Thursday, October 22, 2009 3:10 PM
To: 'General discussion for Windows Installer XML toolset.'
Subject: Re: [WiX-users] Using a CustomAction to modify a dialog

I've never tried this, but if the text control subscribes to the actiondata
event, could your custom action send an actiondata event to it?

Let us know how that works.

-Original Message-
From: Dan Giambalvo [mailto:danie...@microsoft.com] 
Sent: Thursday, October 22, 2009 2:56 PM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Using a CustomAction to modify a dialog

I'm trying to use a CustomAction to do some evaluation, and modify an
on-screen Windows Installer dialog.  The scenario is this:

1)  User enters some text in an edit control

2)  User clicks a button which invokes a custom action to evaluate the
entered text

3)  Custom action completes, and some new text is shown to the user *in
the same dialog*

I've envisioned two ways of building this:

1)  (ideal) Some Text Control lives on the dialog with Text= some
property.  The CustomAction modifies the property value, and the text
control displays the new value.

2)  I create a text control for each possible string I want to show all
overlapping.  The CustomAction either hides/shows the appropriate control,
or sets some property which triggers a bunch of show/hide Conditions on each
text control.

The problem I'm running into is that I can't seem to get Windows Installer
to re-evaluate any properties after the custom action ends.  For example, I
have a button that runs my custom action and it changes the property, but
the UI doesn't update. If I spawn a dialog however (by hitting cancel for
example) then the UI updates.

Does anyone know of a clever way to tickle Windows Installer into
re-evaluating properties after the CustomAction ends?

Thanks
-Dan

Re: [WiX-users] How to best install generic system withcustomerspecific add-ins

2009-10-23 Thread Blair
The difference between wixlibs and shared wix fragments is that the wixlibs
are simply several shared compiled wix fragments joined into a single
library file. That would ensure you don't have multiple copies of the
sources, but would require that you compile them, either from their own
projects in your solution(s) or into some super-library repository you
simply grab at either buildtime or version control sync time.

Either one is usually vastly superior to merge modules. Merge modules have
several limitations that makes them more difficult to service, including
issues related to patching. Their content lives in a strange world where
they are live in your MSI but stand apart from all other content in that
MSI. They bulk up the size and slow down the performance of your MSI due to
the way they integrate in (created system folder custom actions,
difficulties in being referenced from your MSI-specific authoring, etc.).

The closest build-style to merge modules on your list would be wixlibs (you
can build and managed them the exact same way, without the merge
module-specific pain). Or, you simply link in your projects to the source
files wherever you place them for the shared fragment solution.

One other thing superior with the wixlib/shared fragments approach over the
MSM one is that any fragments you don't access in some way aren't included
in the final link, meaning they don't take up any room in your MSI. That
means you can always include all of them in all your projects, and just
reference what you need. Merge modules, once built, are an all-or-nothing
where simply including them includes everything in the MSM in your MSI,
whether you really needed it or not.

-Original Message-
From: Thomas Due [mailto:thomas@scanvaegt.dk] 
Sent: Thursday, October 22, 2009 11:45 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] How to best install generic system
withcustomerspecific add-ins

Fair enough, I'll try to explain the situation a little better, but Sascha's
suggestion about shared fragments files makes absolute sense now that I
think about it. It hadn't even crossed my mind. I would to be careful about
how I shared them, so I would only have one actual copy of the fragments
files, otherwise I would face hell updating all copies when there were
changes to the common files.

Anyway: 

I have a service with a couple of common libraries, in itself this service
does nothing. It merely forms an extensible framework for customer specific
functions. 

Then I have the customer specific functions, these are just dll assemblies
which are added to the service and supplies the actual functionality. 

So, instead of having to copy-and-paste a generic WiX project to each
customer project, I thought I would make a generic module which contains the
service and common assemblies, the necessary functionality for installing
and starting the service etc. 
Additionally it would contain the UI sequence but allow for customer
specific dialogs.

This module would then be added to a customer specific installer which
contained the remaining logic, like adding the customer extension to the
framework and other various customer specific actions. 

This is what I want, how do I do that best? 

Merge Modules? 
WiX libraries? 
Shared WiX fragments?

Best regards,

Thomas Due



-Original Message-
From: Rob Mensching [mailto:r...@robmensching.com] 
Sent: 22. oktober 2009 17:41
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] How to best install generic system
withcustomerspecific add-ins

If Merge Modules look like they will work, I'd use .wixlibs instead (
http://www.robmensching.com/blog/posts/2008/10/10/What-are-.wixlibs-and-why-
would-you-use-them).
The WiX toolset's reusable functionality (from the Extensions and all the
UI) use .wixlibs. The Wix.chm has a nice section on how to customize
dialogs.  I'd start there. Without more details about your exact project
it's hard to provide more detailed advice. smile/

On Thu, Oct 22, 2009 at 1:27 AM, Thomas Due thomas@scanvaegt.dk wrote:

 I have been studying the documentation and the tutorial and come to the
 conclusion that patching is out, since that is essentially just the
 difference between two installers which is exactly what I want to avoid;
 Writing two installers...

 So, my next thought is: How about merge modules then?

 What I mean is, that I put all the common stuff into a merge module, it
 seems that it can contain all the logic regarding files and components
 and installing/starting services etc.

 Then I write the installer for each customer, which contains only the
 customer specific bits and adds the merge module containing all the
 common bit etc.

 So far so good. But how about the UI? Can I contain MOST of the gui in
 the merge module and only add a few customer specific dialogs (if
 necessary) in the customer installer, and if so, how do inject dialogs
 like that?

 Best 

Re: [WiX-users] Upgrade and new install

2009-10-23 Thread Jiang, Chunyan (GE Healthcare)
Hi Rob,

You are right. I have been in the pain for long time. But I have no charge of 
this CustomAction. I only know this CustomAction should be run only in the 
upgrade. And I have to make it work. :(

I have modified the Registry element and give the condition to the custom as 
bellow:

Property Id=INSTALLDIR
  RegistrySearch Id='ViewPointRegistry' Type='raw'
Root='HKCU' Key='Software\Microsoft\ViewPointUpgrade' Name='InstallDir' 
/
/Property

DirectoryRef Id=APPLICATIONFOLDER
  Component Id=RegistryForUpgrade 
Guid=D555488C-C8E7-44eb-91EC-3750602A7599
RegistryKey Id='ViewPointInstallDir' Root='HKCU' 
Key='Software\Microsoft\ViewPointUpgrade' Action='createAndRemoveOnUninstall' 
  RegistryValue Name='InstallDir' Type='string' 
Value='[APPLICATIONFOLDER]' /
/RegistryKey
  /Component
/DirectoryRef

Custom Action=UpgradeStopServices1 Before=InstallFilesPREVIOUSFOUND AND 
INSTALLDIR/Custom

The the upgrade is defined in the beginning of the wxs:
Upgrade Id=8517ae9a-667d-4bd3-9cea-4323be6d7040
  UpgradeVersion OnlyDetect=no Property=PREVIOUSFOUND 
Minimum=5.0.0.0 IncludeMinimum=yes Maximum=8.0.0.0 IncludeMaximum=no /
/Upgrade

However, when I run the upgrade, install version 2 in PathA, where the version 
1 installed, CustomAction is still not called. It causes the problem for later 
function.

Is there something wrong in Property define, or in the condition for 
CustomAction?


Regards,

Chunyan

-Ursprüngliche Nachricht-
Von: Rob Mensching [mailto:r...@robmensching.com] 
Gesendet: Donnerstag, 22. Oktober 2009 17:38
An: General discussion for Windows Installer XML toolset.
Betreff: Re: [WiX-users] Upgrade and new install

1. Personally, I would highly suggest you change your application so this 
CustomAction is unnecessary. You are in for a world of pain in the long run.
smile/
2. The Registry element has been deprecated in WiX v3. The warning tells you 
exactly what to do.

3. You'll have to condition your CustomAction in your first version of your MSI 
to not run on upgrade in the cases you are trying to avoid. If you have already 
shipped the first version of the MSI then you probably have to release a patch 
to that version to add the condition. After the patch is applied then you can 
try the upgrade.

4. See #1. smile/


On Thu, Oct 22, 2009 at 6:51 AM, Jiang, Chunyan (GE Healthcare)  
chunyan.ji...@ge.com wrote:

 Although there is Warning message on compile. From the verbose log I 
 got to know that the Custom Action will not be called when install 
 version 2 to PathB.

 Howver, there is Remove Action trying to remove files from PathA for 
 version 1 install during installing version 2 to PathB. And Install 
 Validate also checks the files in PathA.

 How can I prevent the Remove Action performing on Version 1 in PathA, 
 when install Version 2 in PathB. Should I set the condition 
 INSTALLDIR to somewhere, like I did for custom action?



 -Ursprüngliche Nachricht-
 Von: Jiang, Chunyan (GE Healthcare)
 Gesendet: Donnerstag, 22. Oktober 2009 13:19
 An: General discussion for Windows Installer XML toolset.
 Betreff: Re: [WiX-users] Upgrade and new install

 When I searched in Google, I found some one has the same problem as 
 me. And the suggested solution is to define a property using 
 RegistrySearch. And also define a registry with the install path 
 [APPLICATIONFOLDER]. So that the upgrade will only happen when the registry 
 with path found.

 I tried it as:

Property Id=INSTALLDIR
   RegistrySearch Id='ViewPointRegistry' Type='raw'
Root='HKCU' Key='Software\Microsoft\ViewPointUpgrade'
 Name='InstallDir' /
/Property

DirectoryRef Id=APPLICATIONFOLDER
  Component Id=RegistryForUpgrade
 Guid=D555488C-C8E7-44eb-91EC-3750602A7599
Registry Id='ViewPointInstallDir' Root='HKCU'
 Key='Software\Microsoft\ViewPointUpgrade'
  Name='InstallDir' Action='write' Type='string'
 Value='[APPLICATIONFOLDER]' /
  /Component
/DirectoryRef

 And call custom action as:

  Custom Action=UpgradeStopServices1
 Before=InstallFilesPREVIOUSFOUND AND INSTALLDIR/Custom

 But I got warning when I compile it:

  warning CNDL1080: The Registry element has been deprecated.  Please 
 use one of the new elements which replaces its functionality: 
 RegistryKey for creating registry keys, RegistryValue for writing 
 registry values, RemoveRegistryKey for removing registry keys, and 
 RemoveRegistryValue for removing registry values.

 And when I install this version 2 installer msi, select PathB, the 
 problem is still there.

 Is there something wrong in the Registry define? How to change it?



 -Ursprüngliche Nachricht-
 Von: Jiang, Chunyan (GE Healthcare)
 Gesendet: Donnerstag, 22. Oktober 2009 09:04
 An: General discussion for Windows Installer XML toolset.
 Betreff: [WiX-users] Upgrade and new install

 Hi Wix-users,

 I have developed one upgradable installer with Wix3. As I 

Re: [WiX-users] How to change shortcut name?

2009-10-23 Thread Jiang, Chunyan (GE Healthcare)
Hi Sascha,

Thanks for your tip.

I thought about using wix variable to set the name. However, the version number 
will be changed for every build. And I don't know if there is a varialbe for 
product version, so that I can refer it, instead of using fix string.

If I define the variable like:
?define version = [ProductVersion] ?

And set shortcut name as:

Shortcut Id=DesktopShortcutMyAPP Name=MyAPP$(var.version)...

When I install it, the shortcut shown on the desktop is:

MyAPP[ProductVersion]

Instead of 
MyAPP1.0.0.1

How can I set it?


Chunyan

-Ursprüngliche Nachricht-
Von: Sascha Beaumont [mailto:sascha.beaum...@gmail.com] 
Gesendet: Freitag, 23. Oktober 2009 02:31
An: General discussion for Windows Installer XML toolset.
Betreff: Re: [WiX-users] How to change shortcut name?

Have you thought about using a wix variable to set the shortcut name at compile 
time, rather than at runtime?

i.e. Shortcut/@Name=MyAPP $(var.version)

Sascha


On Thu, Oct 22, 2009 at 6:30 PM, Jiang, Chunyan (GE Healthcare) 
chunyan.ji...@ge.com wrote:
 Hi all,

 I have defined the shortcut like this:

 DirectoryRef Id=ShortcutFolder

 Component Id=DesktopShortcut
 Guid=D9DFCBA6-C98F-4146-87D9-C4F83349C8EC

 Shortcut Id=DesktopShortcutMyAPP Name=MyAPP
 Directory=DesktopFolder Target=[APPLICATIONFOLDER]/MyAPP.exe
 WorkingDirectory=APPLICATIONFOLDER /

 RemoveFolder Id=DesktopFolderVPAdmin On=uninstall /

 RegistryValue Root=HKCU Key=Software\Microsoft\MyAPP
 Name=installed Type=integer Value=1 KeyPath=yes /

 /Component

 /DirectoryRef



 However, I want to give the shortcut another name, like MyAPP 1.0.0.1, 
 which is the version number. How can I perform it? I know that I can 
 define custom action to change the Product Name, like:

 CustomAction Id=SetProductName Property=ProductName Value=MyAPP 
 [ProductVersion]  Execute=immediate /



 But it doesn't work for changing shortcut name. How to modify this 
 custom action to fit for shortcut name?



 Regards,



 Chunyan

 --
  Come build with us! The BlackBerry(R) Developer Conference in 
 SF, CA is the only developer event you need to attend this year. 
 Jumpstart your developing skills, take BlackBerry mobile applications 
 to market and stay ahead of the curve. Join us from November 9 - 12, 
 2009. Register now!
 http://p.sf.net/sfu/devconference
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users


--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the 
only developer event you need to attend this year. Jumpstart your developing 
skills, take BlackBerry mobile applications to market and stay ahead of the 
curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] How to write a Bootstrapper

2009-10-23 Thread Berger Michael
Hi
maybe you should test the DotnetInstaller

http://dotnetinstaller.codeplex.com/

Regards
Michael

-Ursprüngliche Nachricht-
Von: Sankha Biswas (Extended Results Inc) [mailto:v-sab...@microsoft.com] 
Gesendet: Freitag, 23. Oktober 2009 09:59
An: General discussion for Windows Installer XML toolset.
Betreff: Re: [WiX-users] How to write a Bootstrapper

Hi,

I also have similar kind of requirement but little different.
I want to first install OfficePia.exe as prerequisitre first and then want to 
resume my actual msi installation.

Can anybody help us to provide an sample of how to take care of two separate 
installation

a. Install Prerequisite-- I need to execute and .exe file through Wix
b. Install Main Program

I would appreciate any help.

Thanks,
Sankha

-Original Message-
From: Sunkesula, Srivardhan [mailto:srivardhan.sunkes...@netapp.com]
Sent: Friday, October 23, 2009 12:13 AM
To: General discussion for Windows Installer XML toolset.
Subject: [WiX-users] How to write a Bootstrapper

Hi,

  I want to install MySql and Jboss along with my product.
  I have lot of queries on how to write a Bootstraper for this.

   I. Is this BootStraper is an XML Scripting or a VC++ program?
  2. How to add the sequence of my msi installations?
  3. I want to install these third party products in the same path as my
product, once user selects the path of installation from the UI.
Please let me know if this is possible.
 4. How to compile this BootStrapper. And what is the final output of
compiling and linking. Is it an MSI again or something else.

A sample Bootstrap program would be of great help to me.

Thanks  Regards,
Srivardhan.



--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users
*
Hinweis: Dieses E-mail kann vertrauliche und geschützte Informationen
enthalten.
Sollten Sie nicht der beabsichtigte Empfänger sein, verständigen Sie
bitte den Absender und löschen Sie dieses E-mail dann sofort.

Notice: This e-mail contains information that is confidential and may
be privileged.
If you are not the intended recipient, please notify the sender and 
then delete this e-mail immediately.
*

--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


[WiX-users] How to assign user a Full Trust Level during installation process

2009-10-23 Thread danimian

Hello,
I need some help regarding to Full Trust Level.
Our application only allows to start from the users with Full Trust Level.
We want that Full Trust Level must assign to user (if he is not with Full
Trust Level) during the installation. In this way we can avoid this security
problem to start our application after installation.
What i need to do with MSI for making the user as full trusted during the
installation process?

Any kind of help would be highly appreciated.

Thanks in Advance and Best Regards
Adnan
-- 
View this message in context: 
http://n2.nabble.com/How-to-assign-user-a-Full-Trust-Level-during-installation-process-tp3877669p3877669.html
Sent from the wix-users mailing list archive at Nabble.com.

--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] (still) trying to install a PowerShell SnapIn using WiX

2009-10-23 Thread Heath Stewart
What command are you running to link your project (light.exe)? I see no
notable differences between what you have and what I've had for a while that
works for me (
http://psmsi.codeplex.com/SourceControl/changeset/view/28813#40647).

On Tue, Oct 20, 2009 at 11:22 AM, Michael_A mcl...@fullarmor.com wrote:




 Mark Parker-2 wrote:
 
  Simon Dahlbacka wrote:
  On Mon, Sep 28, 2009 at 9:37 PM, Mark godef...@gmail.com wrote:
 
  I'm (still) trying to install a SnapIn using WiX and PSExtension. I'm
  (still) getting the same error, however, which doesn't make any sense
 to
  me, and I believe it's a bug in PSExtension. Here's the relevant
  component in my .wxs file:
 
  Component Id=nmps_dll Guid=1c48d3b5-64ab-4f0c-9ce6-c4eb6f3232e9
 File Id=pstools.dll Source=$(var.pstools.TargetDir)
  KeyPath=yes
  Assembly=.net AssemblyApplication=pstools.dll
 ps:SnapIn Id=pstools Description=Management Tools
  Vendor=mycompany /
 /File
  /Component
 
  And when I try to build the installer, I get this error:
 
  Unresolved bind-time variable !(bind.assemblyName.pstools.dll),
  Version=!(bind.assemblyVersion.pstools.dll),
  Culture=!(bind.assemblyCulture.pstools.dll),
  PublicKeyToken=!(bind.assemblyPublicKeyToken.pstools.dll).
 
  If I leave the ps:SnapIn tag out, it builds fine (but doesn't
 register
  the snapin, of course), and if I leave the AssemblyApplication
 attribute
  out, I get an error about strong names (which is expected, it's not
  strong-named, but I don't want it to go in the GAC).
 
  Don't know anything about installing snapins but:
  Doesn't @Assembly=.net say that the file is to be installed in GAC ?
 
  /Simon
 
 
  Did you ever find a resoultion to this issue as I'm having the same
  problem.
 
  --Michael
 
 --
  Come build with us! The BlackBerryreg; Developer Conference in SF, CA
  is the only developer event you need to attend this year. Jumpstart your
  developing skills, take BlackBerry mobile applications to market and stay
  ahead of the curve. Join us from November 9#45;12, 2009. Register
  now#33;
  http://p.sf.net/sfu/devconf
  ___
  WiX-users mailing list
  WiX-users@lists.sourceforge.net
  https://lists.sourceforge.net/lists/listinfo/wix-users
 
 

 --
 View this message in context:
 http://n2.nabble.com/still-trying-to-install-a-PowerShell-SnapIn-using-WiX-tp3731130p3860392.html
 Sent from the wix-users mailing list archive at Nabble.com.


 --
 Come build with us! The BlackBerry(R) Developer Conference in SF, CA
 is the only developer event you need to attend this year. Jumpstart your
 developing skills, take BlackBerry mobile applications to market and stay
 ahead of the curve. Join us from November 9 - 12, 2009. Register now!
 http://p.sf.net/sfu/devconference
  ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users




-- 
Heath Stewart
Deployment Technologies Team, Microsoft
http://blogs.msdn.com/heaths
--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] How to write a Bootstrapper

2009-10-23 Thread Sunkesula, Srivardhan
Thank you, Michael.
I'll start my research with this.

Thanks  Regards,
Srivardhan.
 

-Original Message-
From: Berger Michael [mailto:m.ber...@palfinger.com] 
Sent: Friday, October 23, 2009 2:18 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] How to write a Bootstrapper

Hi
maybe you should test the DotnetInstaller

http://dotnetinstaller.codeplex.com/

Regards
Michael

-Ursprüngliche Nachricht-
Von: Sankha Biswas (Extended Results Inc) [mailto:v-sab...@microsoft.com]
Gesendet: Freitag, 23. Oktober 2009 09:59
An: General discussion for Windows Installer XML toolset.
Betreff: Re: [WiX-users] How to write a Bootstrapper

Hi,

I also have similar kind of requirement but little different.
I want to first install OfficePia.exe as prerequisitre first and then want to 
resume my actual msi installation.

Can anybody help us to provide an sample of how to take care of two separate 
installation

a. Install Prerequisite-- I need to execute and .exe file through Wix b. 
Install Main Program

I would appreciate any help.

Thanks,
Sankha

-Original Message-
From: Sunkesula, Srivardhan [mailto:srivardhan.sunkes...@netapp.com]
Sent: Friday, October 23, 2009 12:13 AM
To: General discussion for Windows Installer XML toolset.
Subject: [WiX-users] How to write a Bootstrapper

Hi,

  I want to install MySql and Jboss along with my product.
  I have lot of queries on how to write a Bootstraper for this.

   I. Is this BootStraper is an XML Scripting or a VC++ program?
  2. How to add the sequence of my msi installations?
  3. I want to install these third party products in the same path as my 
product, once user selects the path of installation from the UI.
Please let me know if this is possible.
 4. How to compile this BootStrapper. And what is the final output of compiling 
and linking. Is it an MSI again or something else.

A sample Bootstrap program would be of great help to me.

Thanks  Regards,
Srivardhan.



--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the 
only developer event you need to attend this year. Jumpstart your developing 
skills, take BlackBerry mobile applications to market and stay ahead of the 
curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the 
only developer event you need to attend this year. Jumpstart your developing 
skills, take BlackBerry mobile applications to market and stay ahead of the 
curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users
*
Hinweis: Dieses E-mail kann vertrauliche und geschützte Informationen enthalten.
Sollten Sie nicht der beabsichtigte Empfänger sein, verständigen Sie bitte den 
Absender und löschen Sie dieses E-mail dann sofort.

Notice: This e-mail contains information that is confidential and may be 
privileged.
If you are not the intended recipient, please notify the sender and then delete 
this e-mail immediately.
*

--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the 
only developer event you need to attend this year. Jumpstart your developing 
skills, take BlackBerry mobile applications to market and stay ahead of the 
curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Upgrade and new install

2009-10-23 Thread Jiang, Chunyan (GE Healthcare)
Hi Rob,

I think over my scenario and clarify it that I want my App should be installed 
with the registry, which has the path information (PathA) in it. So that when 
install a higher version (version 2) in another path (PathB), even they have 
same UpgradeCode, the previous version (version1) should not be upgraded (no 
Remove Action, no CustomAction). And the higher version is only treated as new 
install.

However, if I define the RegistryKey and RegistrySearch as my previous email, 
the Property INSTALLDIR will be always true, since it is all for the current 
install, not search previus install.

And when I check the Registry Editor, I only find the current Registry:
ViewPointUpgrade, value:PathB

There is no previous registry. So the RegistrySearch will always be true.

As I imagine, all the installation should be in the registry. And the property 
INSTALLDIR will do the registrysearch for all installed version.

How to realize it?

Regards,


Chunyan

-Ursprüngliche Nachricht-
Von: Jiang, Chunyan (GE Healthcare) 
Gesendet: Freitag, 23. Oktober 2009 10:39
An: General discussion for Windows Installer XML toolset.
Betreff: Re: [WiX-users] Upgrade and new install

Hi Rob,

You are right. I have been in the pain for long time. But I have no charge of 
this CustomAction. I only know this CustomAction should be run only in the 
upgrade. And I have to make it work. :(

I have modified the Registry element and give the condition to the custom as 
bellow:

Property Id=INSTALLDIR
  RegistrySearch Id='ViewPointRegistry' Type='raw'
Root='HKCU' Key='Software\Microsoft\ViewPointUpgrade' Name='InstallDir' 
/
/Property

DirectoryRef Id=APPLICATIONFOLDER
  Component Id=RegistryForUpgrade 
Guid=D555488C-C8E7-44eb-91EC-3750602A7599
RegistryKey Id='ViewPointInstallDir' Root='HKCU' 
Key='Software\Microsoft\ViewPointUpgrade' Action='createAndRemoveOnUninstall' 
  RegistryValue Name='InstallDir' Type='string' 
Value='[APPLICATIONFOLDER]' /
/RegistryKey
  /Component
/DirectoryRef

Custom Action=UpgradeStopServices1 Before=InstallFilesPREVIOUSFOUND AND 
INSTALLDIR/Custom

The the upgrade is defined in the beginning of the wxs:
Upgrade Id=8517ae9a-667d-4bd3-9cea-4323be6d7040
  UpgradeVersion OnlyDetect=no Property=PREVIOUSFOUND 
Minimum=5.0.0.0 IncludeMinimum=yes Maximum=8.0.0.0 IncludeMaximum=no /
/Upgrade

However, when I run the upgrade, install version 2 in PathA, where the version 
1 installed, CustomAction is still not called. It causes the problem for later 
function.

Is there something wrong in Property define, or in the condition for 
CustomAction?


Regards,

Chunyan

-Ursprüngliche Nachricht-
Von: Rob Mensching [mailto:r...@robmensching.com]
Gesendet: Donnerstag, 22. Oktober 2009 17:38
An: General discussion for Windows Installer XML toolset.
Betreff: Re: [WiX-users] Upgrade and new install

1. Personally, I would highly suggest you change your application so this 
CustomAction is unnecessary. You are in for a world of pain in the long run.
smile/
2. The Registry element has been deprecated in WiX v3. The warning tells you 
exactly what to do.

3. You'll have to condition your CustomAction in your first version of your MSI 
to not run on upgrade in the cases you are trying to avoid. If you have already 
shipped the first version of the MSI then you probably have to release a patch 
to that version to add the condition. After the patch is applied then you can 
try the upgrade.

4. See #1. smile/


On Thu, Oct 22, 2009 at 6:51 AM, Jiang, Chunyan (GE Healthcare)  
chunyan.ji...@ge.com wrote:

 Although there is Warning message on compile. From the verbose log I 
 got to know that the Custom Action will not be called when install 
 version 2 to PathB.

 Howver, there is Remove Action trying to remove files from PathA for 
 version 1 install during installing version 2 to PathB. And Install 
 Validate also checks the files in PathA.

 How can I prevent the Remove Action performing on Version 1 in PathA, 
 when install Version 2 in PathB. Should I set the condition 
 INSTALLDIR to somewhere, like I did for custom action?



 -Ursprüngliche Nachricht-
 Von: Jiang, Chunyan (GE Healthcare)
 Gesendet: Donnerstag, 22. Oktober 2009 13:19
 An: General discussion for Windows Installer XML toolset.
 Betreff: Re: [WiX-users] Upgrade and new install

 When I searched in Google, I found some one has the same problem as 
 me. And the suggested solution is to define a property using 
 RegistrySearch. And also define a registry with the install path 
 [APPLICATIONFOLDER]. So that the upgrade will only happen when the registry 
 with path found.

 I tried it as:

Property Id=INSTALLDIR
   RegistrySearch Id='ViewPointRegistry' Type='raw'
Root='HKCU' Key='Software\Microsoft\ViewPointUpgrade'
 Name='InstallDir' /
/Property

DirectoryRef Id=APPLICATIONFOLDER
  Component Id=RegistryForUpgrade
 

Re: [WiX-users] How to best install genericsystem withcustomerspecific add-ins

2009-10-23 Thread Thomas Due
Cool, that actually sounds like a clever plan. 
Thanks for the input. 

Best regards,
Thomas Due

-Original Message-
From: Blair [mailto:os...@live.com] 
Sent: 23. oktober 2009 10:29
To: 'General discussion for Windows Installer XML toolset.'
Subject: Re: [WiX-users] How to best install genericsystem
withcustomerspecific add-ins

The difference between wixlibs and shared wix fragments is that the
wixlibs
are simply several shared compiled wix fragments joined into a single
library file. That would ensure you don't have multiple copies of the
sources, but would require that you compile them, either from their own
projects in your solution(s) or into some super-library repository you
simply grab at either buildtime or version control sync time.

Either one is usually vastly superior to merge modules. Merge modules
have
several limitations that makes them more difficult to service, including
issues related to patching. Their content lives in a strange world where
they are live in your MSI but stand apart from all other content in that
MSI. They bulk up the size and slow down the performance of your MSI due
to
the way they integrate in (created system folder custom actions,
difficulties in being referenced from your MSI-specific authoring,
etc.).

The closest build-style to merge modules on your list would be wixlibs
(you
can build and managed them the exact same way, without the merge
module-specific pain). Or, you simply link in your projects to the
source
files wherever you place them for the shared fragment solution.

One other thing superior with the wixlib/shared fragments approach over
the
MSM one is that any fragments you don't access in some way aren't
included
in the final link, meaning they don't take up any room in your MSI. That
means you can always include all of them in all your projects, and just
reference what you need. Merge modules, once built, are an
all-or-nothing
where simply including them includes everything in the MSM in your MSI,
whether you really needed it or not.

-Original Message-
From: Thomas Due [mailto:thomas@scanvaegt.dk] 
Sent: Thursday, October 22, 2009 11:45 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] How to best install generic system
withcustomerspecific add-ins

Fair enough, I'll try to explain the situation a little better, but
Sascha's
suggestion about shared fragments files makes absolute sense now that I
think about it. It hadn't even crossed my mind. I would to be careful
about
how I shared them, so I would only have one actual copy of the fragments
files, otherwise I would face hell updating all copies when there were
changes to the common files.

Anyway: 

I have a service with a couple of common libraries, in itself this
service
does nothing. It merely forms an extensible framework for customer
specific
functions. 

Then I have the customer specific functions, these are just dll
assemblies
which are added to the service and supplies the actual functionality. 

So, instead of having to copy-and-paste a generic WiX project to each
customer project, I thought I would make a generic module which contains
the
service and common assemblies, the necessary functionality for
installing
and starting the service etc. 
Additionally it would contain the UI sequence but allow for customer
specific dialogs.

This module would then be added to a customer specific installer which
contained the remaining logic, like adding the customer extension to the
framework and other various customer specific actions. 

This is what I want, how do I do that best? 

Merge Modules? 
WiX libraries? 
Shared WiX fragments?

Best regards,

Thomas Due



-Original Message-
From: Rob Mensching [mailto:r...@robmensching.com] 
Sent: 22. oktober 2009 17:41
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] How to best install generic system
withcustomerspecific add-ins

If Merge Modules look like they will work, I'd use .wixlibs instead (
http://www.robmensching.com/blog/posts/2008/10/10/What-are-.wixlibs-and-
why-
would-you-use-them).
The WiX toolset's reusable functionality (from the Extensions and all
the
UI) use .wixlibs. The Wix.chm has a nice section on how to customize
dialogs.  I'd start there. Without more details about your exact project
it's hard to provide more detailed advice. smile/

On Thu, Oct 22, 2009 at 1:27 AM, Thomas Due thomas@scanvaegt.dk
wrote:

 I have been studying the documentation and the tutorial and come to
the
 conclusion that patching is out, since that is essentially just the
 difference between two installers which is exactly what I want to
avoid;
 Writing two installers...

 So, my next thought is: How about merge modules then?

 What I mean is, that I put all the common stuff into a merge module,
it
 seems that it can contain all the logic regarding files and components
 and installing/starting services etc.

 Then I write the installer for each customer, which 

Re: [WiX-users] How to write a Bootstrapper

2009-10-23 Thread Raj, Vijay
I also came across this WPF tool Client Profile Configuration Designer which 
was demonstrated at PDC2008.
You could use this one as well. I loved this! - 
http://code.msdn.microsoft.com/cpcd

Cheers'
Vijay Raj
MS-MVP [Setup-Deploy]
Weblog: www.msigeek.comhttp://www.msigeek.com



-Original Message-
From: Sunkesula, Srivardhan [mailto:srivardhan.sunkes...@netapp.com]
Sent: Friday, October 23, 2009 3:17 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] How to write a Bootstrapper

Thank you, Michael.
I'll start my research with this.

Thanks  Regards,
Srivardhan.


-Original Message-
From: Berger Michael [mailto:m.ber...@palfinger.com]
Sent: Friday, October 23, 2009 2:18 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] How to write a Bootstrapper

Hi
maybe you should test the DotnetInstaller

http://dotnetinstaller.codeplex.com/

Regards
Michael

-Ursprüngliche Nachricht-
Von: Sankha Biswas (Extended Results Inc) [mailto:v-sab...@microsoft.com]
Gesendet: Freitag, 23. Oktober 2009 09:59
An: General discussion for Windows Installer XML toolset.
Betreff: Re: [WiX-users] How to write a Bootstrapper

Hi,

I also have similar kind of requirement but little different.
I want to first install OfficePia.exe as prerequisitre first and then want to 
resume my actual msi installation.

Can anybody help us to provide an sample of how to take care of two separate 
installation

a. Install Prerequisite-- I need to execute and .exe file through Wix b. 
Install Main Program

I would appreciate any help.

Thanks,
Sankha

-Original Message-
From: Sunkesula, Srivardhan [mailto:srivardhan.sunkes...@netapp.com]
Sent: Friday, October 23, 2009 12:13 AM
To: General discussion for Windows Installer XML toolset.
Subject: [WiX-users] How to write a Bootstrapper

Hi,

  I want to install MySql and Jboss along with my product.
  I have lot of queries on how to write a Bootstraper for this.

   I. Is this BootStraper is an XML Scripting or a VC++ program?
  2. How to add the sequence of my msi installations?
  3. I want to install these third party products in the same path as my 
product, once user selects the path of installation from the UI.
Please let me know if this is possible.
 4. How to compile this BootStrapper. And what is the final output of compiling 
and linking. Is it an MSI again or something else.

A sample Bootstrap program would be of great help to me.

Thanks  Regards,
Srivardhan.



--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the 
only developer event you need to attend this year. Jumpstart your developing 
skills, take BlackBerry mobile applications to market and stay ahead of the 
curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.netmailto:WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the 
only developer event you need to attend this year. Jumpstart your developing 
skills, take BlackBerry mobile applications to market and stay ahead of the 
curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.netmailto:WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users
*
Hinweis: Dieses E-mail kann vertrauliche und geschützte Informationen enthalten.
Sollten Sie nicht der beabsichtigte Empfänger sein, verständigen Sie bitte den 
Absender und löschen Sie dieses E-mail dann sofort.

Notice: This e-mail contains information that is confidential and may be 
privileged.
If you are not the intended recipient, please notify the sender and then delete 
this e-mail immediately.
*

--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the 
only developer event you need to attend this year. Jumpstart your developing 
skills, take BlackBerry mobile applications to market and stay ahead of the 
curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.netmailto:WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users

--
Come build with us! The BlackBerry(R) Developer 

Re: [WiX-users] Build time Component.wxs generation...

2009-10-23 Thread Tony
Yeah, I guess we give up the ability patch.  Though we've never done
that before.  Guess that's something for management to decide.

We currently use the -gg option on one feature that would never be
patched.  Though, I guess, -ag would accomplish the same behavior
since -gg generates new guids as well.

Do you check-in the auto-generated component.wxs file?  Or just
check-in an empty sub file?

On Thu, Oct 22, 2009 at 4:46 PM, Blair os...@live.com wrote:
 Use heat.exe with -ag and always use Major Upgrade (Product Id='*'), never
 patch.

 -Original Message-
 From: Tony [mailto:yellowjacketl...@gmail.com]
 Sent: Thursday, October 22, 2009 12:56 PM
 To: WiX Users
 Subject: [WiX-users] Build time Component.wxs generation...

 I'm aware of heat.exe and we have used to to seed our component.wxs
 files for our various wixlibs, but how do you deal with features like
 websites and help systems which often have dozens of files added at
 any time during development cycles?  Re-running heat can work, sort
 of, it will change the component guids, but leaves the component Ids
 of existing components alone.  Not sure how it deals with removed
 components.

 I stumbled across this 3rd party tool called Paraffin that appears to
 solve this issue, but have not attempted to put it to use in our build
 environment.

 What have others used to deal with features that often have an ever
 growing (and sometimes shrinking) list of components?
 --
 Tony

 
 --
 Come build with us! The BlackBerry(R) Developer Conference in SF, CA
 is the only developer event you need to attend this year. Jumpstart your
 developing skills, take BlackBerry mobile applications to market and stay
 ahead of the curve. Join us from November 9 - 12, 2009. Register now!
 http://p.sf.net/sfu/devconference
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users


 --
 Come build with us! The BlackBerry(R) Developer Conference in SF, CA
 is the only developer event you need to attend this year. Jumpstart your
 developing skills, take BlackBerry mobile applications to market and stay
 ahead of the curve. Join us from November 9 - 12, 2009. Register now!
 http://p.sf.net/sfu/devconference
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users




-- 
Tony

--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


[WiX-users] CustomAction Session Database Error...

2009-10-23 Thread Dominique Louis
Hi all,
  I'm not sure if this is the best place for this question, so point me
in the right direction if it is not.

It's basically to do with running a CustomAction that returns a view
from the Session Database using VBScript

When I this function is called

Function GetComboBoxView(oProperty)
Dim oView

Set oView = Session.Database.OpenView(SELECT * FROM
ComboBox WHERE Property = '  oProperty  ')
oView.Execute

GetComboBoxView oView
End Function

I get the following error message.

Microsoft VBScript runtime error: Object doesn't support this property
or method Line 4, Column 6.


The actually function I call from the CustomAction is as follows

Function GetProductInstances()
  PopulateProductInstanceComboBox GetComboBoxView(PRODUCTINSTANCE),
Session.Property(PRODUCTREGISTRYPATH)
End Function

Function PopulateProductInstanceComboBox( oView, oProductKey )

Dim aProductInstances, intI, rec

 
aProductInstances = ReadRegKeys(HKEY_LOCAL_MACHINE, oProductKey,
32)  

intI = 0   
For Each sProductInstance In aProductInstances  
  If intI = 0 Then
  '
  ' Populates property PRODUCTINSTANCE with the first
Product Instance
  '
  Session.Property(PRODUCTINSTANCE) = sProductInstance

  End If
  
  AddItemToComboBox oView, sProductInstance, intI
  
  intI = intI + 1  
Next 

' clean up
Set aProductInstances = Nothing
  End Function

Any ideas?

Thanks.

DOMINIQUE LOUIS | IS DEVELOPER, AMX DIGITAL MEDIA GROUP
AMX UK| 6TH FLOOR SALISBURY HOUSE,| LONDON WALL | LONDON | EC2M 5QQ


AMX

AMX UK
Auster Road
Clifton Moor
York, North Yorkshire
United Kingdom
YO30 4GD

+44 (0) 1904 343100 office
+44 (0) 1904 343101 fax

AMX South
6th Floor Salisbury House
London Wall
London
United Kingdom
EC2M 5QQ

+44 (0) 2076 529450 office
+44 (0) 8701 991661 fax

AMX Belgium
Boerenkrijglaan, 96a
B-2260
Westerlo
Belgium


+ 32 (0) 1454 2763  office
+ 32 (0) 1454 2766  fax

##
Attention: 
This e-mail message is privileged and confidential. If you are not the 
intended recipient please delete the message and notify the sender. 
Any views or opinions presented are solely those of the author.

This email was scanned and cleared by NetIQ MailMarshal.
##

--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Build time Component.wxs generation...

2009-10-23 Thread Brian Rogers
Hey Tony,

The GUID generation for -ag doesn't actually occur until Bind time. So,
there would be no output for you to check in. Take a look at the Binder.cs
and SetComponentGuids(Output output) method for more details.

Thanks,

Brian Rogers
Intelligence removes complexity. - Me
http://blogs.msdn.com/icumove -- NEW


On Fri, Oct 23, 2009 at 8:26 AM, Tony yellowjacketl...@gmail.com wrote:

 Yeah, I guess we give up the ability patch.  Though we've never done
 that before.  Guess that's something for management to decide.

 We currently use the -gg option on one feature that would never be
 patched.  Though, I guess, -ag would accomplish the same behavior
 since -gg generates new guids as well.

 Do you check-in the auto-generated component.wxs file?  Or just
 check-in an empty sub file?

 On Thu, Oct 22, 2009 at 4:46 PM, Blair os...@live.com wrote:
  Use heat.exe with -ag and always use Major Upgrade (Product Id='*'),
 never
  patch.
 
  -Original Message-
  From: Tony [mailto:yellowjacketl...@gmail.com]
  Sent: Thursday, October 22, 2009 12:56 PM
  To: WiX Users
  Subject: [WiX-users] Build time Component.wxs generation...
 
  I'm aware of heat.exe and we have used to to seed our component.wxs
  files for our various wixlibs, but how do you deal with features like
  websites and help systems which often have dozens of files added at
  any time during development cycles?  Re-running heat can work, sort
  of, it will change the component guids, but leaves the component Ids
  of existing components alone.  Not sure how it deals with removed
  components.
 
  I stumbled across this 3rd party tool called Paraffin that appears to
  solve this issue, but have not attempted to put it to use in our build
  environment.
 
  What have others used to deal with features that often have an ever
  growing (and sometimes shrinking) list of components?
  --
  Tony
 
 
 
  --
  Come build with us! The BlackBerry(R) Developer Conference in SF, CA
  is the only developer event you need to attend this year. Jumpstart your
  developing skills, take BlackBerry mobile applications to market and stay
  ahead of the curve. Join us from November 9 - 12, 2009. Register now!
  http://p.sf.net/sfu/devconference
  ___
  WiX-users mailing list
  WiX-users@lists.sourceforge.net
  https://lists.sourceforge.net/lists/listinfo/wix-users
 
 
 
 --
  Come build with us! The BlackBerry(R) Developer Conference in SF, CA
  is the only developer event you need to attend this year. Jumpstart your
  developing skills, take BlackBerry mobile applications to market and stay
  ahead of the curve. Join us from November 9 - 12, 2009. Register now!
  http://p.sf.net/sfu/devconference
  ___
  WiX-users mailing list
  WiX-users@lists.sourceforge.net
  https://lists.sourceforge.net/lists/listinfo/wix-users
 



 --
 Tony


 --
 Come build with us! The BlackBerry(R) Developer Conference in SF, CA
 is the only developer event you need to attend this year. Jumpstart your
 developing skills, take BlackBerry mobile applications to market and stay
 ahead of the curve. Join us from November 9 - 12, 2009. Register now!
 http://p.sf.net/sfu/devconference
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users

--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Build time Component.wxs generation...

2009-10-23 Thread Tony
The would be output to changed if files were added/removed, which is
what I'm mostly concerned about.  Web developer adds 5 more aspx pages
and the next build's websitecomponents.wxs file will now be different
than the previous version.  But do I need a checked in copy of a build
time generated file??

On Fri, Oct 23, 2009 at 12:32 PM, Brian Rogers rogers.br...@gmail.com wrote:
 Hey Tony,

 The GUID generation for -ag doesn't actually occur until Bind time. So,
 there would be no output for you to check in. Take a look at the Binder.cs
 and SetComponentGuids(Output output) method for more details.

 Thanks,

 Brian Rogers
 Intelligence removes complexity. - Me
 http://blogs.msdn.com/icumove -- NEW


 On Fri, Oct 23, 2009 at 8:26 AM, Tony yellowjacketl...@gmail.com wrote:

 Yeah, I guess we give up the ability patch.  Though we've never done
 that before.  Guess that's something for management to decide.

 We currently use the -gg option on one feature that would never be
 patched.  Though, I guess, -ag would accomplish the same behavior
 since -gg generates new guids as well.

 Do you check-in the auto-generated component.wxs file?  Or just
 check-in an empty sub file?

 On Thu, Oct 22, 2009 at 4:46 PM, Blair os...@live.com wrote:
  Use heat.exe with -ag and always use Major Upgrade (Product Id='*'),
 never
  patch.
 
  -Original Message-
  From: Tony [mailto:yellowjacketl...@gmail.com]
  Sent: Thursday, October 22, 2009 12:56 PM
  To: WiX Users
  Subject: [WiX-users] Build time Component.wxs generation...
 
  I'm aware of heat.exe and we have used to to seed our component.wxs
  files for our various wixlibs, but how do you deal with features like
  websites and help systems which often have dozens of files added at
  any time during development cycles?  Re-running heat can work, sort
  of, it will change the component guids, but leaves the component Ids
  of existing components alone.  Not sure how it deals with removed
  components.
 
  I stumbled across this 3rd party tool called Paraffin that appears to
  solve this issue, but have not attempted to put it to use in our build
  environment.
 
  What have others used to deal with features that often have an ever
  growing (and sometimes shrinking) list of components?
  --
  Tony
 
 
 
  --
  Come build with us! The BlackBerry(R) Developer Conference in SF, CA
  is the only developer event you need to attend this year. Jumpstart your
  developing skills, take BlackBerry mobile applications to market and stay
  ahead of the curve. Join us from November 9 - 12, 2009. Register now!
  http://p.sf.net/sfu/devconference
  ___
  WiX-users mailing list
  WiX-users@lists.sourceforge.net
  https://lists.sourceforge.net/lists/listinfo/wix-users
 
 
 
 --
  Come build with us! The BlackBerry(R) Developer Conference in SF, CA
  is the only developer event you need to attend this year. Jumpstart your
  developing skills, take BlackBerry mobile applications to market and stay
  ahead of the curve. Join us from November 9 - 12, 2009. Register now!
  http://p.sf.net/sfu/devconference
  ___
  WiX-users mailing list
  WiX-users@lists.sourceforge.net
  https://lists.sourceforge.net/lists/listinfo/wix-users
 



 --
 Tony


 --
 Come build with us! The BlackBerry(R) Developer Conference in SF, CA
 is the only developer event you need to attend this year. Jumpstart your
 developing skills, take BlackBerry mobile applications to market and stay
 ahead of the curve. Join us from November 9 - 12, 2009. Register now!
 http://p.sf.net/sfu/devconference
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users

 --
 Come build with us! The BlackBerry(R) Developer Conference in SF, CA
 is the only developer event you need to attend this year. Jumpstart your
 developing skills, take BlackBerry mobile applications to market and stay
 ahead of the curve. Join us from November 9 - 12, 2009. Register now!
 http://p.sf.net/sfu/devconference
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users




-- 
Tony

--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!

Re: [WiX-users] Questions on more advanced WiX Installer UI

2009-10-23 Thread Dan Giambalvo
Sascha,

Thanks for the reply.  Long term ( philosophically), I generally agree with 
you.  I think the idea of doing as little as possible in the installer, and 
pushing it instead to a branded first-run experience inside the application has 
a lot of benefits.  People don't like dealing with installers, and in general 
you have a lot more flexibility in what you can do from within the codebase of 
the product.  The downside of course is that windows installer then doesn't 
know about the things you've done, and so can't undo them to restore/maintain 
machine state.  You could argue the same is true for custom actions anyway, and 
are probably right.  But I digress.

In the short term, we do have need to do this in the installer.  Our install 
process currently involves some rather time-intensive tasks which we don't want 
the user to have to wait on IF they are only going to have to give up and go 
home because they don't have a key.  Undoubtedly all of this could be moved 
into some post-install step, but that is out of scope for where we are in our 
product cycle.  We're going to have to make do with what Windows Installer 
gives us.  Longer term, I'm hoping to move in the direction you've prescribed.  
We also have a rather unique set of requirements and a pretty controlled 
install environment, which also helps mitigate some of the (very good) points 
you raise W.R.T. install-time checks like we're doing.  

Thanks again for your feedback
-Dan 

-Original Message-
From: Sascha Beaumont [mailto:sascha.beaum...@gmail.com] 
Sent: Thursday, October 22, 2009 7:16 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Questions on more advanced WiX Installer UI

Hi Dan,

This sounds like something similar to what we were trying to do with
our installer. The question you should ask yourself is do you need to
do this during installation, or could you move some of these steps to
a post-install phase?

What we ended up doing is for interactive installations, launching a
separate program post-install that does all the key validation and the
required webservice calls when the user presses the Finish button.

For corporate deployments (i.e. silent mode, no UI), certain
properties can be embedded in the MSI or provided on the command line
- if these are present we call a command line program with CAQuietExec
that does pretty much the same thing that the GUI would.

The key is further validated by the application at runtime, dropping
back into a demo mode if it can't find a license and prompting the
user to launch the activation GUI program.

The end result is a simpler installation that's much easier to manage,
requiring an internet connection during install can lead to a number
of problems so by separating it out the user doesn't get as confused
about why things might be failing.

Sascha

On Thu, Oct 22, 2009 at 4:53 AM, Dan Giambalvo danie...@microsoft.com wrote:
 I'm working on some enhancements to our WiX based setup UI, and wanted to 
 know if a few things are possible using the UI components Windows Installer 
 makes available:

 1)      We have a custom action as a part of our installer that makes a web 
 service call.  We'd like to embed in the UI a spinner that would spin during 
 the time we are making the call.  Does such a control exist in the Windows 
 Installer toolkit?  Can we use some type of animated gif for this purpose?

 2)      We have to accept entry of a product-key type code at install.  
 Ideally, we'd like to add some logic so we auto-add/remove separators at the 
 right time, don't allow invalid characters (input is Hex) etc.  Does Windows 
 Installer have any mechanism for doing this sort of thing?

 Thanks in advance for any help!
 -Dan

 --
 Come build with us! The BlackBerry(R) Developer Conference in SF, CA
 is the only developer event you need to attend this year. Jumpstart your
 developing skills, take BlackBerry mobile applications to market and stay
 ahead of the curve. Join us from November 9 - 12, 2009. Register now!
 http://p.sf.net/sfu/devconference
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users


--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
Come build with us! The 

[WiX-users] Property-RegistrySearch during uninstall

2009-10-23 Thread Tony
Is Property--RegistrySearch evaluated during uninstall as well?  I'd
like to set a property's value to a registry value during uninstall.
IOW, I need to use a value found in the registry during uninstall.

-- 
Tony

--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Modify INSTALLDIR using custom action?

2009-10-23 Thread Hoang Le
Thanks Alex, I learnt from your blog that CA Type 35 scheduled after
CostFinalize can be used to set MYDIR.

However, the issue is that [INSTALLDIR] passed in by the parent project
could be anywhere (user input), so I don't know it in advance. So it comes
back to the question how I can walk up to the parent directory and create my
directory structure from there.

Here what I have:

Place holder for MYDIR
---
Directory Id=TARGETDIR Name=SourceDir
 Directory Id=INSTALLDIR  /
 Directory Id=MYDIR Name=. /
/Directory

and the CA is:

--Custom Action
-
CustomAction Id=SetMyDirPath
Directory=MYDIR
Value=[INSTALLDIR]\..\My folder /

 InstallExecuteSequence
Custom Action=SetMyDirPath After=CostFinalizeNot
Installed/Custom
/InstallExecuteSequence
---

The compiler would complain about the .. again, something like: Error
1324. The folder path '..' contains an invalid character.



On Thu, Oct 22, 2009 at 3:57 PM, Alexander Shevchuk (Volt) 
a-ale...@microsoft.com wrote:

 You need to use CA Type 35 scheduled after CostFinalize to set MYDIR to
 whatever you want.

 Alex



 -Original Message-
 From: Hoang Le [mailto:hoangle2...@gmail.com]
 Sent: Thursday, October 22, 2009 3:44 PM
 To: General discussion for Windows Installer XML toolset.
 Subject: Re: [WiX-users] Modify INSTALLDIR using custom action?

 Thanks Craig, I've tried this before and the compiler doesn't seem to like
 the ..

 My code somehow like this

 Directory Id=TARGETDIR Name=SourceDir
  Directory Id =INSTALLDIR
  Directory Id=MYDIR Name=[INSTALLDIR]..\MyInstallDir /
  /Directory
 /Directory

 Here is the error:

 --- error CNDL0027: The Directory/@Name attribute's value,
 '[INSTALLDIR]..\MyInstallDir', is not a valid long name because it contains
 illegal characters.  Legal long names contain no more than 260 characters
 and must contain at least one non-period
 character.  Any character except for the follow may be used: \ ? |   : /
 *
 . 


 On Thu, Oct 22, 2009 at 3:08 PM, Craig Miller 
 craig.mil...@spatialminds.com
  wrote:

  Try [INSTALLDIR]..\siblingdir\
 
 
 
   -Original Message-
   From: Hoang Le [mailto:hoangle2...@gmail.com]
   Sent: Thursday, October 22, 2009 3:02 PM
   To: General discussion for Windows Installer XML toolset.
   Subject: [WiX-users] Modify INSTALLDIR using custom action?
  
   Hi,
  
   My merge module receives an INSTALLDIR value passed in by a parent
  project
   (which I have no control over), and the requirement is that I have to
   install my files to a directory under the parent of  INSTALLDIR (a
  sibling
   of INSTALLDIR).
  
   My initial thought was to get the value of [INSTALLDIR], locate its
  parent,
   then create my dir structure from there. This sounds very simple but
  quite
   hard to achieve.
  
   Any helpful idea is greatly appreciated.
  
   Thanks.
  
 
 
 
  --
   Come build with us! The BlackBerry(R) Developer Conference in SF, CA
   is the only developer event you need to attend this year. Jumpstart
 your
   developing skills, take BlackBerry mobile applications to market and
 stay
   ahead of the curve. Join us from November 9 - 12, 2009. Register now!
   http://p.sf.net/sfu/devconference
   ___
   WiX-users mailing list
   WiX-users@lists.sourceforge.net
   https://lists.sourceforge.net/lists/listinfo/wix-users
 
 
 
 
 --
  Come build with us! The BlackBerry(R) Developer Conference in SF, CA
  is the only developer event you need to attend this year. Jumpstart your
  developing skills, take BlackBerry mobile applications to market and stay
  ahead of the curve. Join us from November 9 - 12, 2009. Register now!
  http://p.sf.net/sfu/devconference
  ___
  WiX-users mailing list
  WiX-users@lists.sourceforge.net
  https://lists.sourceforge.net/lists/listinfo/wix-users
 

 --
 Come build with us! The BlackBerry(R) Developer Conference in SF, CA
 is the only developer event you need to attend this year. Jumpstart your
 developing skills, take BlackBerry mobile applications to market and stay
 ahead of the curve. Join us from November 9 - 12, 2009. Register now!
 http://p.sf.net/sfu/devconference
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 

[WiX-users] Blocking install if property isn't set

2009-10-23 Thread Dan Giambalvo
Our installer has some UI which requests and validates a product key from the 
user during InstallUISequence.  I want to add an additional checks so that if 
some clever user tries to silently install our msi to bypass the UI (and hence 
the validation UI) that they install will fail.  I have a private property in 
the installer which I can check to know if we've successfully validated a key, 
I'm just not sure how to make the entire InstallExecute sequence contingent on 
it (and only so on clean installs, but not uninstalls/upgrades/repairs/etc.)

I'm guessing there's a right way to do this.  Can anyone tell me what it is?

Thanks!
-Dan
--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


[WiX-users] Translating from ancient to v3 WiX

2009-10-23 Thread John Cooper (Collabera)
I'm translating some v1 and v2 WiX files to v3 Wix, but I'm having trouble 
dealing with a CustomAction construct.

In the old source I'll see:

CustomAction Directory=
VBScriptCall=SOME-VB-SCRIPT-INLINE
Id=I_DO_SOME_VB_INLINE

Now, after passing the file through wixcop -f and doing some editing, candle 
reports that Directory is inappropriate for several reasons.  Candle also 
reports that this CA needs a BinaryKey, FileKey, or Property.

What v3 construct would best mimic the archaic behavior above?

--
John M. Cooper
Collabera at Microsoft

--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Using a CustomAction to modify a dialog

2009-10-23 Thread Dan Giambalvo
Thanks for the detailed response.  I read over the MSDN overview 3 times, but 
it still wasn't really clicking for me.  Unfortunately, the Windows Installer 
docs seem to discuss everything at the abstract level, but really lack in the 
way of real world examples.  For example, figuring out what the Attribute 
property means when subscribing to an event, or what you'd use it for is pretty 
elusive.  I suspected it references the property on the subscribing control 
that needs to be updated when the event fires, but I've seen it used in ways 
that cause me to question that assumption.

What I've found I can do is have a CustomAction modify a property (which 
doesn't trigger windows installer) but then publish the property value to 
itself like this
Publish Property=Foo Value=[Foo]1/Publish
This seems to trick Windows Installer into re-evaluating the value of that 
property.  Then I have a bunch of text controls with conditions that show/hide 
them depending on the resultant value.  This mostly gives me what I'm looking 
for. 

The one thing I can't do (and didn't mention below) is actually changing the 
Windows Installer UI while still in the CA.  Imagine a CA that takes a while, 
and you want to update some progress text on the UI.   I don't think the CA can 
trigger this, and I can't come up with any clever way to create a loop of 
Publish entries so could repeatedly call a CA that is monitoring some 
background task until it's done.  All of that said, the approach I discuss 
above does appear good enough.  I noticed that you can call Session.Message 
object to send a record of type msiMessageTypeActionData.  I have no idea if 
that will do what I want, but I might try it after I get the basics nailed, and 
see if it's the magic I'm looking for.  It may have the same limitation you 
mention below with MsiProcessMessage.  

Thanks again!
-Dan 


-Original Message-
From: Blair [mailto:os...@live.com] 
Sent: Friday, October 23, 2009 1:16 AM
To: 'General discussion for Windows Installer XML toolset.'
Subject: Re: [WiX-users] Using a CustomAction to modify a dialog

MSDN's overview is here: http://msdn.microsoft.com/library/aa368036.aspx

A control can both publish (send out) and subscribe to (receive from others) 
events. However, not all controls can do both, and what they can do varies by 
control, by event, and by whether they are reporting or listening.
Further, you can publish to an event OR a property.

Publishing a property means that when the control would have fired that event, 
some property is set to the event's value.
Publishing an event means shouting out: Hey, xyz(abc) just happened! where 
xyz is the event name and abc is the event value.
Subscribing to an event hooks some control's attribute to an event, such that 
when that event is published, that control's attribute will be set to the 
event's value.

Some events have built-in listeners, others don't. All of the documented 
defined events are listed on this page:
http://msdn.microsoft.com/library/aa368043.aspx

Since I don't use internal UI all that much, I forgot you can't call 
MsiProcessMessage from a custom action called via DoAction from an event.
So, the only thing you can do with your custom action is change properties.

Properties used for conditions are only evaluated when the dialog is first 
populated, so the only way to refresh the dialog is to replace the dialog 
with itself (assuming that can be done, which I don't honestly know). You would 
have to use the same event that calls your custom action with a later order 
value so that the activity that subscribes to that event runs after your custom 
action has completed.

The event mapping is set, so typically what happens is you get the following 
kind of model:

You can use some event from some control to fire your CA, which evaluates and 
sets a property.
That same event can then trigger a pop-up dialog based on your property if you 
are reporting an error condition, which returns to your dialog when the user 
acknowledges it and tries again.
That same event can move to another dialog based on another state of your 
property, for example, you passed validation.

The above model is a type of PID validation sample I remember from the SDK a 
while back, but I am having trouble finding just where I found it before.
When/if I find it, I will show what the markup looks like to implement it. I 
know it isn't just like what you are looking for, but we have said before that 
the internal UI is quite limited. There are a whole other set of limitations on 
the external and embedded UIs, but we don't live in a perfect world, apparently.

-Original Message-
From: Dan Giambalvo [mailto:danie...@microsoft.com]
Sent: Thursday, October 22, 2009 4:07 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Using a CustomAction to modify a dialog

I'm sorry, I'm having trouble wrapping my head around how this subscribe model 
works, and also 

Re: [WiX-users] How to change shortcut name?

2009-10-23 Thread Blair
How do you set produ...@version?

-Original Message-
From: Jiang, Chunyan (GE Healthcare) [mailto:chunyan.ji...@ge.com] 
Sent: Friday, October 23, 2009 1:42 AM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] How to change shortcut name?

Hi Sascha,

Thanks for your tip.

I thought about using wix variable to set the name. However, the version
number will be changed for every build. And I don't know if there is a
varialbe for product version, so that I can refer it, instead of using fix
string.

If I define the variable like:
?define version = [ProductVersion] ?

And set shortcut name as:

Shortcut Id=DesktopShortcutMyAPP Name=MyAPP$(var.version)...

When I install it, the shortcut shown on the desktop is:

MyAPP[ProductVersion]

Instead of 
MyAPP1.0.0.1

How can I set it?


Chunyan

-Ursprüngliche Nachricht-
Von: Sascha Beaumont [mailto:sascha.beaum...@gmail.com] 
Gesendet: Freitag, 23. Oktober 2009 02:31
An: General discussion for Windows Installer XML toolset.
Betreff: Re: [WiX-users] How to change shortcut name?

Have you thought about using a wix variable to set the shortcut name at
compile time, rather than at runtime?

i.e. Shortcut/@Name=MyAPP $(var.version)

Sascha


On Thu, Oct 22, 2009 at 6:30 PM, Jiang, Chunyan (GE Healthcare)
chunyan.ji...@ge.com wrote:
 Hi all,

 I have defined the shortcut like this:

 DirectoryRef Id=ShortcutFolder

 Component Id=DesktopShortcut
 Guid=D9DFCBA6-C98F-4146-87D9-C4F83349C8EC

 Shortcut Id=DesktopShortcutMyAPP Name=MyAPP
 Directory=DesktopFolder Target=[APPLICATIONFOLDER]/MyAPP.exe
 WorkingDirectory=APPLICATIONFOLDER /

 RemoveFolder Id=DesktopFolderVPAdmin On=uninstall /

 RegistryValue Root=HKCU Key=Software\Microsoft\MyAPP
 Name=installed Type=integer Value=1 KeyPath=yes /

 /Component

 /DirectoryRef



 However, I want to give the shortcut another name, like MyAPP 1.0.0.1, 
 which is the version number. How can I perform it? I know that I can 
 define custom action to change the Product Name, like:

 CustomAction Id=SetProductName Property=ProductName Value=MyAPP 
 [ProductVersion]  Execute=immediate /



 But it doesn't work for changing shortcut name. How to modify this 
 custom action to fit for shortcut name?



 Regards,



 Chunyan

 --
  Come build with us! The BlackBerry(R) Developer Conference in 
 SF, CA is the only developer event you need to attend this year. 
 Jumpstart your developing skills, take BlackBerry mobile applications 
 to market and stay ahead of the curve. Join us from November 9 - 12, 
 2009. Register now!
 http://p.sf.net/sfu/devconference
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users



--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the
only developer event you need to attend this year. Jumpstart your developing
skills, take BlackBerry mobile applications to market and stay ahead of the
curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


[WiX-users] Why isn't my property evaluating??

2009-10-23 Thread Michael Bray
I'm trying to simulate the InstallURL property of a VS.net install
MSI... I've got to the ponit where the WIX MSI will open a browser to
the download page that I want it to go to. I thought things were going
great because on my test machine, the web page opened when I didn't have
the MSXML6 component installed. However things went downhill when I
discovered that the web page opened even when I DID have the component
installed.

I'm searching for the MSXML6 component using a Property w/ a
RegistrySearch. However, as best as I can tell, the registry value isn't
even being evaluated, and thus it always looks like it isn't
installed.

Here's the relevant portion of my WXS:

  Property Id=MSXML6
RegistrySearch Id=MSXML6Search Root=HKCR
Key=Msxml2.DOMDocument.6.0 Type=raw /
/Property
Property Id=TEST
RegistrySearch Id=TESTSearch Root=HKLM Type=raw
Name=Version Key=SOFTWARE\Microsoft\DirectX /
/Property
Property Id=cmd.exe Value=cmd.exe /
CustomAction Id=OpenMSXML6Download Property=cmd.exe
ExeCommand=/c start
http://www.microsoft.com/downloads/details.aspx?FamilyID=993c0bcf-3bcf-4
009-be21-27e85e1857b1 Execute=immediate Return=check /
CustomAction Id=OpenMSXML6DownloadError Error=This component
requires MSXML6. =[MSXML6]=[cmd.exe]=[TEST]=  A web browser has been
opened to the download page.  Please install MSXML6 and then re-install
the connector. /

!-- installation execution sequence --
InstallExecuteSequence
!-- wires the error dialog to the downgrade event --
Custom Action=PreventDowngrading
After=FindRelatedProductsNEWPRODUCTFOUND/Custom

!-- execution to delete old install info after
upgrade--
RemoveExistingProducts After=InstallValidate /

!-- Forces MSXML6 to be pre-installed --
!-- Custom Action=OpenMSXML6Download
Before=FindRelatedProductsNOT MSXML6/Custom --
Custom Action=OpenMSXML6Download
Before=FindRelatedProductsNOT MSXML6/Custom
Custom Action=OpenMSXML6DownloadError
After=OpenMSXML6DownloadNOT MSXML6/Custom
/InstallExecuteSequence

!-- ui information for the custom actions above. --
InstallUISequence
Custom Action=PreventDowngrading
After=FindRelatedProductsNEWPRODUCTFOUND/Custom
Custom Action=OpenMSXML6Download
Before=FindRelatedProductsNOT MSXML6/Custom
Custom Action=OpenMSXML6DownloadError
After=OpenMSXML6DownloadNOT MSXML6/Custom
/InstallUISequence

 

What this does is if MSXML6 isn't defined then it opens the web page and
then prints the custom error message. Note that I'm trying to print the
value of the property in the error message (I'm not sure if this is
valid or not, but it seems to be.) The text that I see says This
component requires MSXML6. ==[cmd.exe]==... so it is printing the value
of the 'cmd.exe' property but not the other two... maybe that's because
I define the property explicitly, I'm not sure... Anyway, I also ran the
MSI with debugging on, and in the log file, I see absolutely no
reference at all to the MSXML6 or the TEST properties ever being set.
I've confirmed that the registry values are indeed set, although I'm not
100% sure how to handle the Msxml2 registry key, since it doesn't have
any real values, only a default value. (I'm assuming that leaving off
the 'Name' parameter is the right way to handle this.)

Help??

-mdb

--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] How to detect files presence and conditionally show a new added dialog page

2009-10-23 Thread little.forest
Hi Blair,


As what I mentioned, since our old 2.0 product's uninstaller deletes settings 
but not remove the setting folder, there is a chance that the setting folder is 
empty. So we can't detect folder but have to detect *.* by writing a DLL. 
Anyways, I wrote a small dll and integrated it in the installer. But from the 
log, the dll is never run. Could you please point out the problem? Here is the 
Wix code:
Property Id=NEED_MIGRATE_SETTING Secure=yes/ 
Binary Id=DetectSettingMigrationBin SourceFile=DetectSM.dll /
CustomAction Id=DetectSettingMigrationCA 
BinaryKey=DetectSettingMigrationBin DllEntry=DetectSM 
Execute=firstSequence/
InstallExecuteSequence
Custom Action=DetectSettingMigrationCA After=AppSearch /
/InstallExecuteSequence


In the dll, for testing purpose, I just set the property NEED_MIGRATE_SETTING 
as 1 for now. But I checked the log, the dll itself is never run.

Thanks.
/Brian.




From: Blair os...@live.com
To: General discussion for Windows Installer XML toolset. 
wix-users@lists.sourceforge.net
Sent: Tuesday, October 20, 2009 7:27:41 PM
Subject: Re: [WiX-users] How to detect files presence and conditionally show a 
new added dialog page

Can you live with the existence (or lack thereof) of those two settings
directories? Does it matter if they are empty or not? I would assume that if
the 3.0 one didn't exist but the 2.0 one does, you have a better than even
chance you have data to upgrade. Anytime you can use a built-in custom
action instead of supplying your own, you tend to improve reliability.
However, you can add as many custom actions (and custom action binaries)
into your installation package as you wish, up to the size limit of the MSI
file (not that you would ever want an MSI file that big).

I assume your AppData property is the APPDATA environment variable. If
not, change my [%AppData]\ and ensure that the property is defined before
the AppSearch action. If it is defined in your Directory table, those
properties are not populated until CostFinalize. Note that if Windows
Installer defines a path, it always includes the trailing backslash ('\').
If you supply paths via your own custom action, you should do the same.

Property Id=SETTINGS_20_EXIST Secure=yes
  DirectorySearch Id=[%AppData]\MyCompany\MyApp 2.0 Depth=0/
/Property
Property Id=SETTINGS_30_EXIST Secure=yes
  DirectorySearch Id=[%AppData]\MyCompany\MyApp 3.0 Depth=0/
/Property

Property Id=NEED_UPGRADE_SETTING Secure=yes/
CustomAction Id=SetNeedUpgradeSetting Property=NEED_UPGRADE_SETTING
Value=1 Execute=firstSequence/

InstallUISequence
  Custom Action=SetNeedUpgradeSetting After=AppSearchSETTINGS_20_EXIST
AND NOT SETTINGS_30_EXIST/Custom
/InstallUISequence

If you can't use mere absence/presence of the folders for your detection
routine, don't use any of my code (except for the secure property
declaration of NEED_UPDRADE_SETTING) and instead set NEED_UPDRADE_SETTING in
your DLL action. Call your action with no condition in your
InstallUISequence where I call SetNeedUpgradeSetting.

Now, on to the InstallExecuteSequence. I am assuming that your confirmation
dialog (MyDlg) has a check box that is associated with the property
REALLY_NEED_UPGRADE_SETTING (which sets it to the value 1 if the box is
checked). What is your default? Also, if the UI is bypassed, what should the
assumed value be? I hope it is the same (checked by default, assumed checked
if never shown). That makes your logic easier.

You will need to make sure your REALLY_NEED_UPGRADE_SETTING property is also
secure. I will assume it is also checked by default. If you are using your
DLL instead of simple folder detection you should also set it to
Execute=firstSequence.

Property Id=REALLY_NEED_UPGRADE_SETTING Secure=yes Value=1/!--
remove 'Value=1' but leave the rest if migrating settings is NOT the
default action--

InstallExecuteSequence
  Custom Action=SetNeedUpgradeSetting After=AppSearchSETTINGS_20_EXIST
AND NOT SETTINGS_30_EXIST/Custom!--Note that this is identical to
InstallUISequence. That is by design.--
  Custom Action=DoSettingUpgrade Before=InstallFinalizeNOT Installed
AND REALLY_NEED_UPGRADE_SETTING AND NEED_UPGRADE_SETTING/Custom!-- you
may consider removing NOT Installed AND  from this condition. Then repairs
and minor upgrades will restore your 3.0 settings from the 2.0 ones if they
are lost--
/InstallExecuteSequence

If your default action and your opt-in/-out experience are different, you
will have a bit more complicated logic story, but I will leave that unless
you need help with that.

-Original Message-
From: little.forest [mailto:little.for...@ymail.com] 
Sent: Tuesday, October 20, 2009 5:40 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] How to detect files presence and conditionally show
a new added dialog page

Hi Blair,


Thank you so much. I really appreciate your detailed reply. The code example
you provided is clear and neat.

Basically, we'd like 

Re: [WiX-users] Translating from ancient to v3 WiX

2009-10-23 Thread Blair
Not sure, but could it possibly be this?

CustomAction Id=I_DO_SOME_VB_INLINE
Script=vbscript![CDATA[SOME-VB-SCRIPT-INLINE]]/CustomAction

-Original Message-
From: John Cooper (Collabera) [mailto:a-jc...@microsoft.com] 
Sent: Friday, October 23, 2009 12:56 PM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Translating from ancient to v3 WiX

I'm translating some v1 and v2 WiX files to v3 Wix, but I'm having trouble
dealing with a CustomAction construct.

In the old source I'll see:

CustomAction Directory=
VBScriptCall=SOME-VB-SCRIPT-INLINE
Id=I_DO_SOME_VB_INLINE

Now, after passing the file through wixcop -f and doing some editing, candle
reports that Directory is inappropriate for several reasons.  Candle also
reports that this CA needs a BinaryKey, FileKey, or Property.

What v3 construct would best mimic the archaic behavior above?

--
John M. Cooper
Collabera at Microsoft


--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Build time Component.wxs generation...

2009-10-23 Thread Blair
With -ag, you don't necessarily need a checked in copy, although a reference
copy in your build dump couldn't hurt.

-gg is only recommended if you run heat just one time on the involved file
and never ever run it again (you just maintain the authoring manually from
then on). Even if you never intend to patch, it is still not a good idea for
the same component with the same filename in the same directory to ever have
a different guid.

Changing from -gg to -ag is just as bad. Once you have used -gg you need to
check that in and never change the guid again.

I hope you haven't shipped yet.

-Original Message-
From: Tony [mailto:yellowjacketl...@gmail.com] 
Sent: Friday, October 23, 2009 9:45 AM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Build time Component.wxs generation...

The would be output to changed if files were added/removed, which is
what I'm mostly concerned about.  Web developer adds 5 more aspx pages
and the next build's websitecomponents.wxs file will now be different
than the previous version.  But do I need a checked in copy of a build
time generated file??

On Fri, Oct 23, 2009 at 12:32 PM, Brian Rogers rogers.br...@gmail.com
wrote:
 Hey Tony,

 The GUID generation for -ag doesn't actually occur until Bind time. So,
 there would be no output for you to check in. Take a look at the Binder.cs
 and SetComponentGuids(Output output) method for more details.

 Thanks,

 Brian Rogers
 Intelligence removes complexity. - Me
 http://blogs.msdn.com/icumove -- NEW


 On Fri, Oct 23, 2009 at 8:26 AM, Tony yellowjacketl...@gmail.com wrote:

 Yeah, I guess we give up the ability patch.  Though we've never done
 that before.  Guess that's something for management to decide.

 We currently use the -gg option on one feature that would never be
 patched.  Though, I guess, -ag would accomplish the same behavior
 since -gg generates new guids as well.

 Do you check-in the auto-generated component.wxs file?  Or just
 check-in an empty sub file?

 On Thu, Oct 22, 2009 at 4:46 PM, Blair os...@live.com wrote:
  Use heat.exe with -ag and always use Major Upgrade (Product Id='*'),
 never
  patch.
 
  -Original Message-
  From: Tony [mailto:yellowjacketl...@gmail.com]
  Sent: Thursday, October 22, 2009 12:56 PM
  To: WiX Users
  Subject: [WiX-users] Build time Component.wxs generation...
 
  I'm aware of heat.exe and we have used to to seed our component.wxs
  files for our various wixlibs, but how do you deal with features like
  websites and help systems which often have dozens of files added at
  any time during development cycles?  Re-running heat can work, sort
  of, it will change the component guids, but leaves the component Ids
  of existing components alone.  Not sure how it deals with removed
  components.
 
  I stumbled across this 3rd party tool called Paraffin that appears to
  solve this issue, but have not attempted to put it to use in our build
  environment.
 
  What have others used to deal with features that often have an ever
  growing (and sometimes shrinking) list of components?
  --
  Tony
 
 


  --
  Come build with us! The BlackBerry(R) Developer Conference in SF, CA
  is the only developer event you need to attend this year. Jumpstart
your
  developing skills, take BlackBerry mobile applications to market and
stay
  ahead of the curve. Join us from November 9 - 12, 2009. Register now!
  http://p.sf.net/sfu/devconference
  ___
  WiX-users mailing list
  WiX-users@lists.sourceforge.net
  https://lists.sourceforge.net/lists/listinfo/wix-users
 
 
 


--
  Come build with us! The BlackBerry(R) Developer Conference in SF, CA
  is the only developer event you need to attend this year. Jumpstart
your
  developing skills, take BlackBerry mobile applications to market and
stay
  ahead of the curve. Join us from November 9 - 12, 2009. Register now!
  http://p.sf.net/sfu/devconference
  ___
  WiX-users mailing list
  WiX-users@lists.sourceforge.net
  https://lists.sourceforge.net/lists/listinfo/wix-users
 



 --
 Tony




--
 Come build with us! The BlackBerry(R) Developer Conference in SF, CA
 is the only developer event you need to attend this year. Jumpstart your
 developing skills, take BlackBerry mobile applications to market and stay
 ahead of the curve. Join us from November 9 - 12, 2009. Register now!
 http://p.sf.net/sfu/devconference
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users



--
 Come build with us! The BlackBerry(R) Developer 

Re: [WiX-users] Property-RegistrySearch during uninstall

2009-10-23 Thread Blair
Yes, it is.

-Original Message-
From: Tony [mailto:yellowjacketl...@gmail.com] 
Sent: Friday, October 23, 2009 11:10 AM
To: WiX Users
Subject: [WiX-users] Property-RegistrySearch during uninstall

Is Property--RegistrySearch evaluated during uninstall as well?  I'd
like to set a property's value to a registry value during uninstall.
IOW, I need to use a value found in the registry during uninstall.

-- 
Tony


--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Blocking install if property isn't set

2009-10-23 Thread Blair
If you have a custom action that validates your property and returns failure
if it doesn't validate, run that custom action as Execute=immediate and
schedule it in both InstallUISequence AND InstallExecuteSequence (so it runs
up to twice). Make sure that the property you check is a secure property,
which means it also must be a public property, so that it can be passed
from the UI sequence to the execute sequence so it doesn't fail then.

Condition that action in both sequences on NOT Installed so it doesn't
block uninstalls/upgrades/repairs/etc.

-Original Message-
From: Dan Giambalvo [mailto:danie...@microsoft.com] 
Sent: Friday, October 23, 2009 12:37 PM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Blocking install if property isn't set

Our installer has some UI which requests and validates a product key from
the user during InstallUISequence.  I want to add an additional checks so
that if some clever user tries to silently install our msi to bypass the UI
(and hence the validation UI) that they install will fail.  I have a private
property in the installer which I can check to know if we've successfully
validated a key, I'm just not sure how to make the entire InstallExecute
sequence contingent on it (and only so on clean installs, but not
uninstalls/upgrades/repairs/etc.)

I'm guessing there's a right way to do this.  Can anyone tell me what it is?

Thanks!
-Dan

--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Why isn't my property evaluating??

2009-10-23 Thread Blair
Add Secure=yes to your Property Id=MSXML6 element (Property
Id=MSXML6 Secure=yes)

AppSearch runs as if it were marked Execute=oncePerProcess, so once it
runs in InstallUISequence, it won't run again in InstallExecuteSequence.
Because MSXML6 isn't a secure property, it isn't always communicated from
the UI sequence to the server.

BTW: It's usually considered a bad idea to open web browsers from
InstallExecuteSequence. UI should be confined to the UI sequence, with the
singular exception of using MsiProcessMessage (or equivalent API) to send
error messages from CAs running in InstallExecuteSequence. The CustomAction
Error=.../ actions are acceptable in either sequence since it does the same
thing (a MsiProcessMessage-like action).

-Original Message-
From: Michael Bray [mailto:mb...@ctiusa.com] 
Sent: Friday, October 23, 2009 3:23 PM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Why isn't my property evaluating??

I'm trying to simulate the InstallURL property of a VS.net install
MSI... I've got to the ponit where the WIX MSI will open a browser to
the download page that I want it to go to. I thought things were going
great because on my test machine, the web page opened when I didn't have
the MSXML6 component installed. However things went downhill when I
discovered that the web page opened even when I DID have the component
installed.

I'm searching for the MSXML6 component using a Property w/ a
RegistrySearch. However, as best as I can tell, the registry value isn't
even being evaluated, and thus it always looks like it isn't
installed.

Here's the relevant portion of my WXS:

  Property Id=MSXML6
RegistrySearch Id=MSXML6Search Root=HKCR
Key=Msxml2.DOMDocument.6.0 Type=raw /
/Property
Property Id=TEST
RegistrySearch Id=TESTSearch Root=HKLM Type=raw
Name=Version Key=SOFTWARE\Microsoft\DirectX /
/Property
Property Id=cmd.exe Value=cmd.exe /
CustomAction Id=OpenMSXML6Download Property=cmd.exe
ExeCommand=/c start
http://www.microsoft.com/downloads/details.aspx?FamilyID=993c0bcf-3bcf-4
009-be21-27e85e1857b1 Execute=immediate Return=check /
CustomAction Id=OpenMSXML6DownloadError Error=This component
requires MSXML6. =[MSXML6]=[cmd.exe]=[TEST]=  A web browser has been
opened to the download page.  Please install MSXML6 and then re-install
the connector. /

!-- installation execution sequence --
InstallExecuteSequence
!-- wires the error dialog to the downgrade event --
Custom Action=PreventDowngrading
After=FindRelatedProductsNEWPRODUCTFOUND/Custom

!-- execution to delete old install info after
upgrade--
RemoveExistingProducts After=InstallValidate /

!-- Forces MSXML6 to be pre-installed --
!-- Custom Action=OpenMSXML6Download
Before=FindRelatedProductsNOT MSXML6/Custom --
Custom Action=OpenMSXML6Download
Before=FindRelatedProductsNOT MSXML6/Custom
Custom Action=OpenMSXML6DownloadError
After=OpenMSXML6DownloadNOT MSXML6/Custom
/InstallExecuteSequence

!-- ui information for the custom actions above. --
InstallUISequence
Custom Action=PreventDowngrading
After=FindRelatedProductsNEWPRODUCTFOUND/Custom
Custom Action=OpenMSXML6Download
Before=FindRelatedProductsNOT MSXML6/Custom
Custom Action=OpenMSXML6DownloadError
After=OpenMSXML6DownloadNOT MSXML6/Custom
/InstallUISequence

 

What this does is if MSXML6 isn't defined then it opens the web page and
then prints the custom error message. Note that I'm trying to print the
value of the property in the error message (I'm not sure if this is
valid or not, but it seems to be.) The text that I see says This
component requires MSXML6. ==[cmd.exe]==... so it is printing the value
of the 'cmd.exe' property but not the other two... maybe that's because
I define the property explicitly, I'm not sure... Anyway, I also ran the
MSI with debugging on, and in the log file, I see absolutely no
reference at all to the MSXML6 or the TEST properties ever being set.
I've confirmed that the registry values are indeed set, although I'm not
100% sure how to handle the Msxml2 registry key, since it doesn't have
any real values, only a default value. (I'm assuming that leaving off
the 'Name' parameter is the right way to handle this.)

Help??

-mdb


--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net

Re: [WiX-users] Blocking install if property isn't set

2009-10-23 Thread Dan Giambalvo
If I make it public, can't someone just pass it in from the command line then?  
Doesn't that similarly defeat the purpose? 

-Original Message-
From: Blair [mailto:os...@live.com] 
Sent: Friday, October 23, 2009 5:22 PM
To: 'General discussion for Windows Installer XML toolset.'
Subject: Re: [WiX-users] Blocking install if property isn't set

If you have a custom action that validates your property and returns failure
if it doesn't validate, run that custom action as Execute=immediate and
schedule it in both InstallUISequence AND InstallExecuteSequence (so it runs
up to twice). Make sure that the property you check is a secure property,
which means it also must be a public property, so that it can be passed
from the UI sequence to the execute sequence so it doesn't fail then.

Condition that action in both sequences on NOT Installed so it doesn't
block uninstalls/upgrades/repairs/etc.

-Original Message-
From: Dan Giambalvo [mailto:danie...@microsoft.com] 
Sent: Friday, October 23, 2009 12:37 PM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Blocking install if property isn't set

Our installer has some UI which requests and validates a product key from
the user during InstallUISequence.  I want to add an additional checks so
that if some clever user tries to silently install our msi to bypass the UI
(and hence the validation UI) that they install will fail.  I have a private
property in the installer which I can check to know if we've successfully
validated a key, I'm just not sure how to make the entire InstallExecute
sequence contingent on it (and only so on clean installs, but not
uninstalls/upgrades/repairs/etc.)

I'm guessing there's a right way to do this.  Can anyone tell me what it is?

Thanks!
-Dan

--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] How to detect files presence and conditionally show a new added dialog page

2009-10-23 Thread Blair
Did you try scheduling the custom action in both InstallUISequence as well
as InstallExecuteSequence?

-Original Message-
From: little.forest [mailto:little.for...@ymail.com] 
Sent: Friday, October 23, 2009 5:01 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] How to detect files presence and conditionally show
a new added dialog page

Hi Blair,


As what I mentioned, since our old 2.0 product's uninstaller deletes
settings but not remove the setting folder, there is a chance that the
setting folder is empty. So we can't detect folder but have to detect *.* by
writing a DLL. Anyways, I wrote a small dll and integrated it in the
installer. But from the log, the dll is never run. Could you please point
out the problem? Here is the Wix code:
Property Id=NEED_MIGRATE_SETTING Secure=yes/ 
Binary Id=DetectSettingMigrationBin SourceFile=DetectSM.dll /
CustomAction Id=DetectSettingMigrationCA
BinaryKey=DetectSettingMigrationBin DllEntry=DetectSM
Execute=firstSequence/
InstallExecuteSequence
Custom Action=DetectSettingMigrationCA After=AppSearch /
/InstallExecuteSequence


In the dll, for testing purpose, I just set the property
NEED_MIGRATE_SETTING as 1 for now. But I checked the log, the dll itself is
never run.

Thanks.
/Brian.




From: Blair os...@live.com
To: General discussion for Windows Installer XML toolset.
wix-users@lists.sourceforge.net
Sent: Tuesday, October 20, 2009 7:27:41 PM
Subject: Re: [WiX-users] How to detect files presence and conditionally show
a new added dialog page

Can you live with the existence (or lack thereof) of those two settings
directories? Does it matter if they are empty or not? I would assume that if
the 3.0 one didn't exist but the 2.0 one does, you have a better than even
chance you have data to upgrade. Anytime you can use a built-in custom
action instead of supplying your own, you tend to improve reliability.
However, you can add as many custom actions (and custom action binaries)
into your installation package as you wish, up to the size limit of the MSI
file (not that you would ever want an MSI file that big).

I assume your AppData property is the APPDATA environment variable. If
not, change my [%AppData]\ and ensure that the property is defined before
the AppSearch action. If it is defined in your Directory table, those
properties are not populated until CostFinalize. Note that if Windows
Installer defines a path, it always includes the trailing backslash ('\').
If you supply paths via your own custom action, you should do the same.

Property Id=SETTINGS_20_EXIST Secure=yes
  DirectorySearch Id=[%AppData]\MyCompany\MyApp 2.0 Depth=0/
/Property
Property Id=SETTINGS_30_EXIST Secure=yes
  DirectorySearch Id=[%AppData]\MyCompany\MyApp 3.0 Depth=0/
/Property

Property Id=NEED_UPGRADE_SETTING Secure=yes/
CustomAction Id=SetNeedUpgradeSetting Property=NEED_UPGRADE_SETTING
Value=1 Execute=firstSequence/

InstallUISequence
  Custom Action=SetNeedUpgradeSetting After=AppSearchSETTINGS_20_EXIST
AND NOT SETTINGS_30_EXIST/Custom
/InstallUISequence

If you can't use mere absence/presence of the folders for your detection
routine, don't use any of my code (except for the secure property
declaration of NEED_UPDRADE_SETTING) and instead set NEED_UPDRADE_SETTING in
your DLL action. Call your action with no condition in your
InstallUISequence where I call SetNeedUpgradeSetting.

Now, on to the InstallExecuteSequence. I am assuming that your confirmation
dialog (MyDlg) has a check box that is associated with the property
REALLY_NEED_UPGRADE_SETTING (which sets it to the value 1 if the box is
checked). What is your default? Also, if the UI is bypassed, what should the
assumed value be? I hope it is the same (checked by default, assumed checked
if never shown). That makes your logic easier.

You will need to make sure your REALLY_NEED_UPGRADE_SETTING property is also
secure. I will assume it is also checked by default. If you are using your
DLL instead of simple folder detection you should also set it to
Execute=firstSequence.

Property Id=REALLY_NEED_UPGRADE_SETTING Secure=yes Value=1/!--
remove 'Value=1' but leave the rest if migrating settings is NOT the
default action--

InstallExecuteSequence
  Custom Action=SetNeedUpgradeSetting After=AppSearchSETTINGS_20_EXIST
AND NOT SETTINGS_30_EXIST/Custom!--Note that this is identical to
InstallUISequence. That is by design.--
  Custom Action=DoSettingUpgrade Before=InstallFinalizeNOT Installed
AND REALLY_NEED_UPGRADE_SETTING AND NEED_UPGRADE_SETTING/Custom!-- you
may consider removing NOT Installed AND  from this condition. Then repairs
and minor upgrades will restore your 3.0 settings from the 2.0 ones if they
are lost--
/InstallExecuteSequence

If your default action and your opt-in/-out experience are different, you
will have a bit more complicated logic story, but I will leave that unless
you need help with that.

-Original Message-
From: little.forest 

Re: [WiX-users] Why isn't my property evaluating??

2009-10-23 Thread Michael Bray
Doesn't seem to help...   It still doesn't detect the registry key
correctly and the output text seems to indicate that the value is empty
for both MSXML6 and TEST properties.

-mdb

-Original Message-
From: Blair [mailto:os...@live.com] 
Sent: Friday, October 23, 2009 8:31 PM
To: 'General discussion for Windows Installer XML toolset.'
Subject: Re: [WiX-users] Why isn't my property evaluating??

Add Secure=yes to your Property Id=MSXML6 element (Property
Id=MSXML6 Secure=yes)

AppSearch runs as if it were marked Execute=oncePerProcess, so once it
runs in InstallUISequence, it won't run again in InstallExecuteSequence.
Because MSXML6 isn't a secure property, it isn't always communicated
from
the UI sequence to the server.

BTW: It's usually considered a bad idea to open web browsers from
InstallExecuteSequence. UI should be confined to the UI sequence, with
the
singular exception of using MsiProcessMessage (or equivalent API) to
send
error messages from CAs running in InstallExecuteSequence. The
CustomAction
Error=.../ actions are acceptable in either sequence since it does the
same
thing (a MsiProcessMessage-like action).

-Original Message-
From: Michael Bray [mailto:mb...@ctiusa.com] 
Sent: Friday, October 23, 2009 3:23 PM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Why isn't my property evaluating??

I'm trying to simulate the InstallURL property of a VS.net install
MSI... I've got to the ponit where the WIX MSI will open a browser to
the download page that I want it to go to. I thought things were going
great because on my test machine, the web page opened when I didn't have
the MSXML6 component installed. However things went downhill when I
discovered that the web page opened even when I DID have the component
installed.

I'm searching for the MSXML6 component using a Property w/ a
RegistrySearch. However, as best as I can tell, the registry value isn't
even being evaluated, and thus it always looks like it isn't
installed.

Here's the relevant portion of my WXS:

  Property Id=MSXML6
RegistrySearch Id=MSXML6Search Root=HKCR
Key=Msxml2.DOMDocument.6.0 Type=raw /
/Property
Property Id=TEST
RegistrySearch Id=TESTSearch Root=HKLM Type=raw
Name=Version Key=SOFTWARE\Microsoft\DirectX /
/Property
Property Id=cmd.exe Value=cmd.exe /
CustomAction Id=OpenMSXML6Download Property=cmd.exe
ExeCommand=/c start
http://www.microsoft.com/downloads/details.aspx?FamilyID=993c0bcf-3bcf-4
009-be21-27e85e1857b1 Execute=immediate Return=check /
CustomAction Id=OpenMSXML6DownloadError Error=This component
requires MSXML6. =[MSXML6]=[cmd.exe]=[TEST]=  A web browser has been
opened to the download page.  Please install MSXML6 and then re-install
the connector. /

!-- installation execution sequence --
InstallExecuteSequence
!-- wires the error dialog to the downgrade event --
Custom Action=PreventDowngrading
After=FindRelatedProductsNEWPRODUCTFOUND/Custom

!-- execution to delete old install info after
upgrade--
RemoveExistingProducts After=InstallValidate /

!-- Forces MSXML6 to be pre-installed --
!-- Custom Action=OpenMSXML6Download
Before=FindRelatedProductsNOT MSXML6/Custom --
Custom Action=OpenMSXML6Download
Before=FindRelatedProductsNOT MSXML6/Custom
Custom Action=OpenMSXML6DownloadError
After=OpenMSXML6DownloadNOT MSXML6/Custom
/InstallExecuteSequence

!-- ui information for the custom actions above. --
InstallUISequence
Custom Action=PreventDowngrading
After=FindRelatedProductsNEWPRODUCTFOUND/Custom
Custom Action=OpenMSXML6Download
Before=FindRelatedProductsNOT MSXML6/Custom
Custom Action=OpenMSXML6DownloadError
After=OpenMSXML6DownloadNOT MSXML6/Custom
/InstallUISequence

 

What this does is if MSXML6 isn't defined then it opens the web page and
then prints the custom error message. Note that I'm trying to print the
value of the property in the error message (I'm not sure if this is
valid or not, but it seems to be.) The text that I see says This
component requires MSXML6. ==[cmd.exe]==... so it is printing the value
of the 'cmd.exe' property but not the other two... maybe that's because
I define the property explicitly, I'm not sure... Anyway, I also ran the
MSI with debugging on, and in the log file, I see absolutely no
reference at all to the MSXML6 or the TEST properties ever being set.
I've confirmed that the registry values are indeed set, although I'm not
100% sure how to handle the Msxml2 registry key, since it doesn't have
any real values, only a default value. (I'm assuming that leaving off
the 'Name' parameter is the right way to handle this.)

Help??

-mdb



--
Come build with us! The 

Re: [WiX-users] How to detect files presence and conditionally show a new added dialog page

2009-10-23 Thread little.forest
Aha, you're right. I didn't schedule the CA in InstallUISequence. 

Sorry.
After add it in InstallUISequence, it seems working.

Thanks and have a good weekend!
/Brian




From: Blair os...@live.com
To: General discussion for Windows Installer XML toolset. 
wix-users@lists.sourceforge.net
Sent: Friday, October 23, 2009 5:34:05 PM
Subject: Re: [WiX-users] How to detect files presence and conditionally show a 
new added dialog page

Did you try scheduling the custom action in both InstallUISequence as well
as InstallExecuteSequence?

-Original Message-
From: little.forest [mailto:little.for...@ymail.com] 
Sent: Friday, October 23, 2009 5:01 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] How to detect files presence and conditionally show
a new added dialog page

Hi Blair,


As what I mentioned, since our old 2.0 product's uninstaller deletes
settings but not remove the setting folder, there is a chance that the
setting folder is empty. So we can't detect folder but have to detect *.* by
writing a DLL. Anyways, I wrote a small dll and integrated it in the
installer. But from the log, the dll is never run. Could you please point
out the problem? Here is the Wix code:
Property Id=NEED_MIGRATE_SETTING Secure=yes/ 
Binary Id=DetectSettingMigrationBin SourceFile=DetectSM.dll /
CustomAction Id=DetectSettingMigrationCA
BinaryKey=DetectSettingMigrationBin DllEntry=DetectSM
Execute=firstSequence/
InstallExecuteSequence
Custom Action=DetectSettingMigrationCA After=AppSearch /
/InstallExecuteSequence


In the dll, for testing purpose, I just set the property
NEED_MIGRATE_SETTING as 1 for now. But I checked the log, the dll itself is
never run.

Thanks.
/Brian.




From: Blair os...@live.com
To: General discussion for Windows Installer XML toolset.
wix-users@lists.sourceforge.net
Sent: Tuesday, October 20, 2009 7:27:41 PM
Subject: Re: [WiX-users] How to detect files presence and conditionally show
a new added dialog page

Can you live with the existence (or lack thereof) of those two settings
directories? Does it matter if they are empty or not? I would assume that if
the 3.0 one didn't exist but the 2.0 one does, you have a better than even
chance you have data to upgrade. Anytime you can use a built-in custom
action instead of supplying your own, you tend to improve reliability.
However, you can add as many custom actions (and custom action binaries)
into your installation package as you wish, up to the size limit of the MSI
file (not that you would ever want an MSI file that big).

I assume your AppData property is the APPDATA environment variable. If
not, change my [%AppData]\ and ensure that the property is defined before
the AppSearch action. If it is defined in your Directory table, those
properties are not populated until CostFinalize. Note that if Windows
Installer defines a path, it always includes the trailing backslash ('\').
If you supply paths via your own custom action, you should do the same.

Property Id=SETTINGS_20_EXIST Secure=yes
  DirectorySearch Id=[%AppData]\MyCompany\MyApp 2.0 Depth=0/
/Property
Property Id=SETTINGS_30_EXIST Secure=yes
  DirectorySearch Id=[%AppData]\MyCompany\MyApp 3.0 Depth=0/
/Property

Property Id=NEED_UPGRADE_SETTING Secure=yes/
CustomAction Id=SetNeedUpgradeSetting Property=NEED_UPGRADE_SETTING
Value=1 Execute=firstSequence/

InstallUISequence
  Custom Action=SetNeedUpgradeSetting After=AppSearchSETTINGS_20_EXIST
AND NOT SETTINGS_30_EXIST/Custom
/InstallUISequence

If you can't use mere absence/presence of the folders for your detection
routine, don't use any of my code (except for the secure property
declaration of NEED_UPDRADE_SETTING) and instead set NEED_UPDRADE_SETTING in
your DLL action. Call your action with no condition in your
InstallUISequence where I call SetNeedUpgradeSetting.

Now, on to the InstallExecuteSequence. I am assuming that your confirmation
dialog (MyDlg) has a check box that is associated with the property
REALLY_NEED_UPGRADE_SETTING (which sets it to the value 1 if the box is
checked). What is your default? Also, if the UI is bypassed, what should the
assumed value be? I hope it is the same (checked by default, assumed checked
if never shown). That makes your logic easier.

You will need to make sure your REALLY_NEED_UPGRADE_SETTING property is also
secure. I will assume it is also checked by default. If you are using your
DLL instead of simple folder detection you should also set it to
Execute=firstSequence.

Property Id=REALLY_NEED_UPGRADE_SETTING Secure=yes Value=1/!--
remove 'Value=1' but leave the rest if migrating settings is NOT the
default action--

InstallExecuteSequence
  Custom Action=SetNeedUpgradeSetting After=AppSearchSETTINGS_20_EXIST
AND NOT SETTINGS_30_EXIST/Custom!--Note that this is identical to
InstallUISequence. That is by design.--
  Custom Action=DoSettingUpgrade Before=InstallFinalizeNOT Installed
AND 

Re: [WiX-users] Blocking install if property isn't set

2009-10-23 Thread Blair
You still validate it and fail the install if it doesn't pass that
validation.

If someone runs the MSI silently your UI never runs anyway. The commandline
is how they would pass what they would have typed into the UI.

-Original Message-
From: Dan Giambalvo [mailto:danie...@microsoft.com] 
Sent: Friday, October 23, 2009 5:32 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Blocking install if property isn't set

If I make it public, can't someone just pass it in from the command line
then?  Doesn't that similarly defeat the purpose? 

-Original Message-
From: Blair [mailto:os...@live.com] 
Sent: Friday, October 23, 2009 5:22 PM
To: 'General discussion for Windows Installer XML toolset.'
Subject: Re: [WiX-users] Blocking install if property isn't set

If you have a custom action that validates your property and returns failure
if it doesn't validate, run that custom action as Execute=immediate and
schedule it in both InstallUISequence AND InstallExecuteSequence (so it runs
up to twice). Make sure that the property you check is a secure property,
which means it also must be a public property, so that it can be passed
from the UI sequence to the execute sequence so it doesn't fail then.

Condition that action in both sequences on NOT Installed so it doesn't
block uninstalls/upgrades/repairs/etc.

-Original Message-
From: Dan Giambalvo [mailto:danie...@microsoft.com] 
Sent: Friday, October 23, 2009 12:37 PM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Blocking install if property isn't set

Our installer has some UI which requests and validates a product key from
the user during InstallUISequence.  I want to add an additional checks so
that if some clever user tries to silently install our msi to bypass the UI
(and hence the validation UI) that they install will fail.  I have a private
property in the installer which I can check to know if we've successfully
validated a key, I'm just not sure how to make the entire InstallExecute
sequence contingent on it (and only so on clean installs, but not
uninstalls/upgrades/repairs/etc.)

I'm guessing there's a right way to do this.  Can anyone tell me what it is?

Thanks!
-Dan

--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users



--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users



--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


[WiX-users] Blog: UI Custom Action Guidelins (and one Workaround)

2009-10-23 Thread Richard
This blog post describes some guidelines for UI custom actions,
including one workaround.  The topics discussed have come up on this
mailing list on more than one occasion.

UI Custom Action Guidelines
http://wp.me/pyVNs-gc

Windows Installer provides a rich set of standard actions that
handle the typical needs of an installation: installing files and
folders, manipulating the registry, searching for existing
resources in the registry or the file system, controlling Windows
services and so-on. Custom actions are handy things for when you
need to do some custom processing that isn’t covered by one of
the standard actions. You can customize your UI experience by
invoking an action when the user interacts with a control by
publishing a DoAction control event for the control. This post
describes some guidelines (and one workaround) for custom actions
invoked by the user interface in a Windows Installer MSI package.

-- 
The Direct3D Graphics Pipeline -- DirectX 9 draft available for download
 http://legalizeadulthood.wordpress.com/the-direct3d-graphics-pipeline/

  Legalize Adulthood! http://legalizeadulthood.wordpress.com

--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


[WiX-users] How do I add both a HKLM and a HKCU key to the registry?

2009-10-23 Thread Dave Kolb
During install, I am trying to add both an HKLM key and an HKCU key for my
product. My wxs looks like the below. When this compiles I get the error

 

ICE57: Component 'C_HKCU_RegistryEntries' has both per-user
and per-machine data with a per-machine KeyPath .

 

I have both components in the features element and since I have these
defined are separate components I do not understand why this does not work.
Any suggestions much appreciated.

 

Thanks, Dave

 

!-- Define the directory structure. --

Directory Id=TARGETDIR Name=SourceDir

 

  !-- add our root registry entries --

  Component Id=C_HKLM_RegistryEntries Guid=xxx

RegistryKey Root=HKLM

 Key=Software\[MYCOMPANYNAME]\[MYPRODUCTROOT]\Manager

  Action=createAndRemoveOnUninstall

/RegistryKey

  /Component

  Component Id=C_HKCU_RegistryEntries Guid=xxx

RegistryKey Root=HKCU

 Key=Software\[MYCOMPANYNAME]\[MYPRODUCTROOT]\Manager

  Action=createAndRemoveOnUninstall

/RegistryKey

  /Component

 



__ Information from ESET NOD32 Antivirus, version of virus signature
database 4537 (20091023) __

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com

--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


[WiX-users] Custom Action: MsiQueryProductState call failing

2009-10-23 Thread Craig Miller
This might be off topic, and if so could someone point me to a good resource
for discussing the Msi WIN32 API?

I have a custom action that is being called, but is failing.  Does anyone
know why the following would return an rc value of INSTALLSTATE_INVALIDARG?
I'm passing in a GUID, so I'm not sure what it's complaining about.

LPCTSTR szProductID = 2EA19080-E744-4B5C-8EF7-488342F9847C;  // GUID
modified to protect the innocent
UINT rc = MsiQueryProductState(szProductID);

I know the custom action is getting called because I have an error message
dialog popping up that is instantiated inside the custom action.  I've tried
calling the custom action from both the InstallExecuteSequence and from the
InstallUISequence.  E.g. these are the snippets I've tried (not at the same
time):

   InstallExecuteSequence
  Custom Action='Ver200Validation' 
  After='FindRelatedProducts'/
   /InstallExecuteSequence
  
   InstallUISequence
 Custom
   Action=Ver200Validation
   After=AppSearch /
   /InstallUISequence

Thanks for the help,
Craig


--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Blocking install if property isn't set

2009-10-23 Thread Dan Giambalvo
So he problem here is that the CustomAction cannot be allowed to run twice.  It 
actually connects to a server, and decrements a server-side count.  So, we only 
want to do that once per install.  So, the way I see it, I have two options:
1) The UI Sequence runs the CA, and sets some *private* flag that cannot be 
passed from the command line like KeyValid.  The InstallExecuteSequence checks 
that that is valid, and then only runs the CA if it is not set based on a 
public PRODUCTKEY flag.  The key here is that I need to be able to pass that 
value from the UI to the Execute sequence, but it cannot be command-line 
passable.  If it is, someone could just run the install silently and pass 
KEYVALID=1. 
2) We somehow disallow silent installs completely.  We are completely 100% fine 
with this, if there is some way to do it.  I would just want to be sure silent 
uninstall is possible (for the upgrade scenario.) 

One might suggest we only run the CA in InstallExecute only, but that doesn't 
work because we want a flow where we verify the key and the user has a chance 
to correct it in the UI.  

-Dan 

-Original Message-
From: Blair [mailto:os...@live.com] 
Sent: Friday, October 23, 2009 6:06 PM
To: 'General discussion for Windows Installer XML toolset.'
Subject: Re: [WiX-users] Blocking install if property isn't set

You still validate it and fail the install if it doesn't pass that validation.

If someone runs the MSI silently your UI never runs anyway. The commandline is 
how they would pass what they would have typed into the UI.

-Original Message-
From: Dan Giambalvo [mailto:danie...@microsoft.com]
Sent: Friday, October 23, 2009 5:32 PM
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Blocking install if property isn't set

If I make it public, can't someone just pass it in from the command line then?  
Doesn't that similarly defeat the purpose? 

-Original Message-
From: Blair [mailto:os...@live.com]
Sent: Friday, October 23, 2009 5:22 PM
To: 'General discussion for Windows Installer XML toolset.'
Subject: Re: [WiX-users] Blocking install if property isn't set

If you have a custom action that validates your property and returns failure if 
it doesn't validate, run that custom action as Execute=immediate and schedule 
it in both InstallUISequence AND InstallExecuteSequence (so it runs up to 
twice). Make sure that the property you check is a secure property, which 
means it also must be a public property, so that it can be passed from the UI 
sequence to the execute sequence so it doesn't fail then.

Condition that action in both sequences on NOT Installed so it doesn't block 
uninstalls/upgrades/repairs/etc.

-Original Message-
From: Dan Giambalvo [mailto:danie...@microsoft.com]
Sent: Friday, October 23, 2009 12:37 PM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Blocking install if property isn't set

Our installer has some UI which requests and validates a product key from the 
user during InstallUISequence.  I want to add an additional checks so that if 
some clever user tries to silently install our msi to bypass the UI (and hence 
the validation UI) that they install will fail.  I have a private property in 
the installer which I can check to know if we've successfully validated a key, 
I'm just not sure how to make the entire InstallExecute sequence contingent on 
it (and only so on clean installs, but not
uninstalls/upgrades/repairs/etc.)

I'm guessing there's a right way to do this.  Can anyone tell me what it is?

Thanks!
-Dan

--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA is the 
only developer event you need to attend this year. Jumpstart your developing 
skills, take BlackBerry mobile applications to market and stay ahead of the 
curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users



--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users



--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and 

Re: [WiX-users] Custom Action: MsiQueryProductState call failing

2009-10-23 Thread Rob Mensching
I think the GUID needs curly braces around it to be recognized by the
Windows Installer.

On Fri, Oct 23, 2009 at 7:33 PM, Craig Miller craig.mil...@spatialminds.com
 wrote:

 This might be off topic, and if so could someone point me to a good
 resource
 for discussing the Msi WIN32 API?

 I have a custom action that is being called, but is failing.  Does anyone
 know why the following would return an rc value of INSTALLSTATE_INVALIDARG?
 I'm passing in a GUID, so I'm not sure what it's complaining about.

LPCTSTR szProductID = 2EA19080-E744-4B5C-8EF7-488342F9847C;  // GUID
 modified to protect the innocent
UINT rc = MsiQueryProductState(szProductID);

 I know the custom action is getting called because I have an error message
 dialog popping up that is instantiated inside the custom action.  I've
 tried
 calling the custom action from both the InstallExecuteSequence and from the
 InstallUISequence.  E.g. these are the snippets I've tried (not at the same
 time):

   InstallExecuteSequence
  Custom Action='Ver200Validation'
  After='FindRelatedProducts'/
   /InstallExecuteSequence

   InstallUISequence
 Custom
   Action=Ver200Validation
   After=AppSearch /
   /InstallUISequence

 Thanks for the help,
 Craig



 --
 Come build with us! The BlackBerry(R) Developer Conference in SF, CA
 is the only developer event you need to attend this year. Jumpstart your
 developing skills, take BlackBerry mobile applications to market and stay
 ahead of the curve. Join us from November 9 - 12, 2009. Register now!
 http://p.sf.net/sfu/devconference
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users




-- 
virtually, Rob Mensching - http://RobMensching.com LLC
--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


[WiX-users] Invitation from Akash!

2009-10-23 Thread Akash

Hi General discussion for Windows Installer XML tools, 
Windows 7 has landed. Don't miss out on your chance to get a copy at:

http://www.Windows7Giveaway.com 

Regards,
Akash,
911ak...@gmail.com

--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] How do I add both a HKLM and a HKCU key to the registry?

2009-10-23 Thread Blair
Try adding KeyPath=yes to each of your two RegistryKey elements.

-Original Message-
From: Dave Kolb [mailto:d...@dotnetcodeslingers.com] 
Sent: Friday, October 23, 2009 6:34 PM
To: 'General discussion for Windows Installer XML toolset.'
Subject: [WiX-users] How do I add both a HKLM and a HKCU key to the
registry?

During install, I am trying to add both an HKLM key and an HKCU key for my
product. My wxs looks like the below. When this compiles I get the error

 

ICE57: Component 'C_HKCU_RegistryEntries' has both per-user
and per-machine data with a per-machine KeyPath .

 

I have both components in the features element and since I have these
defined are separate components I do not understand why this does not work.
Any suggestions much appreciated.

 

Thanks, Dave

 

!-- Define the directory structure. --

Directory Id=TARGETDIR Name=SourceDir

 

  !-- add our root registry entries --

  Component Id=C_HKLM_RegistryEntries Guid=xxx

RegistryKey Root=HKLM

 Key=Software\[MYCOMPANYNAME]\[MYPRODUCTROOT]\Manager

  Action=createAndRemoveOnUninstall

/RegistryKey

  /Component

  Component Id=C_HKCU_RegistryEntries Guid=xxx

RegistryKey Root=HKCU

 Key=Software\[MYCOMPANYNAME]\[MYPRODUCTROOT]\Manager

  Action=createAndRemoveOnUninstall

/RegistryKey

  /Component

 



__ Information from ESET NOD32 Antivirus, version of virus signature
database 4537 (20091023) __

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com


--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Why isn't my property evaluating??

2009-10-23 Thread Michael Bray
Ah!!  I figured it out...   It's because the CustomAction was executing
before AppSearch (because I had After=FindRelatedProducts)!  Once I
specified After=AppSearch it works great...  

-mdb

-Original Message-
From: Michael Bray 
Sent: Friday, October 23, 2009 8:41 PM
To: General discussion for Windows Installer XML toolset.
Subject: RE: [WiX-users] Why isn't my property evaluating??

Doesn't seem to help...   It still doesn't detect the registry key
correctly and the output text seems to indicate that the value is empty
for both MSXML6 and TEST properties.

-mdb

-Original Message-
From: Blair [mailto:os...@live.com] 
Sent: Friday, October 23, 2009 8:31 PM
To: 'General discussion for Windows Installer XML toolset.'
Subject: Re: [WiX-users] Why isn't my property evaluating??

Add Secure=yes to your Property Id=MSXML6 element (Property
Id=MSXML6 Secure=yes)

AppSearch runs as if it were marked Execute=oncePerProcess, so once it
runs in InstallUISequence, it won't run again in InstallExecuteSequence.
Because MSXML6 isn't a secure property, it isn't always communicated
from
the UI sequence to the server.

BTW: It's usually considered a bad idea to open web browsers from
InstallExecuteSequence. UI should be confined to the UI sequence, with
the
singular exception of using MsiProcessMessage (or equivalent API) to
send
error messages from CAs running in InstallExecuteSequence. The
CustomAction
Error=.../ actions are acceptable in either sequence since it does the
same
thing (a MsiProcessMessage-like action).

-Original Message-
From: Michael Bray [mailto:mb...@ctiusa.com] 
Sent: Friday, October 23, 2009 3:23 PM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Why isn't my property evaluating??

I'm trying to simulate the InstallURL property of a VS.net install
MSI... I've got to the ponit where the WIX MSI will open a browser to
the download page that I want it to go to. I thought things were going
great because on my test machine, the web page opened when I didn't have
the MSXML6 component installed. However things went downhill when I
discovered that the web page opened even when I DID have the component
installed.

I'm searching for the MSXML6 component using a Property w/ a
RegistrySearch. However, as best as I can tell, the registry value isn't
even being evaluated, and thus it always looks like it isn't
installed.

Here's the relevant portion of my WXS:

  Property Id=MSXML6
RegistrySearch Id=MSXML6Search Root=HKCR
Key=Msxml2.DOMDocument.6.0 Type=raw /
/Property
Property Id=TEST
RegistrySearch Id=TESTSearch Root=HKLM Type=raw
Name=Version Key=SOFTWARE\Microsoft\DirectX /
/Property
Property Id=cmd.exe Value=cmd.exe /
CustomAction Id=OpenMSXML6Download Property=cmd.exe
ExeCommand=/c start
http://www.microsoft.com/downloads/details.aspx?FamilyID=993c0bcf-3bcf-4
009-be21-27e85e1857b1 Execute=immediate Return=check /
CustomAction Id=OpenMSXML6DownloadError Error=This component
requires MSXML6. =[MSXML6]=[cmd.exe]=[TEST]=  A web browser has been
opened to the download page.  Please install MSXML6 and then re-install
the connector. /

!-- installation execution sequence --
InstallExecuteSequence
!-- wires the error dialog to the downgrade event --
Custom Action=PreventDowngrading
After=FindRelatedProductsNEWPRODUCTFOUND/Custom

!-- execution to delete old install info after
upgrade--
RemoveExistingProducts After=InstallValidate /

!-- Forces MSXML6 to be pre-installed --
!-- Custom Action=OpenMSXML6Download
Before=FindRelatedProductsNOT MSXML6/Custom --
Custom Action=OpenMSXML6Download
Before=FindRelatedProductsNOT MSXML6/Custom
Custom Action=OpenMSXML6DownloadError
After=OpenMSXML6DownloadNOT MSXML6/Custom
/InstallExecuteSequence

!-- ui information for the custom actions above. --
InstallUISequence
Custom Action=PreventDowngrading
After=FindRelatedProductsNEWPRODUCTFOUND/Custom
Custom Action=OpenMSXML6Download
Before=FindRelatedProductsNOT MSXML6/Custom
Custom Action=OpenMSXML6DownloadError
After=OpenMSXML6DownloadNOT MSXML6/Custom
/InstallUISequence

 

What this does is if MSXML6 isn't defined then it opens the web page and
then prints the custom error message. Note that I'm trying to print the
value of the property in the error message (I'm not sure if this is
valid or not, but it seems to be.) The text that I see says This
component requires MSXML6. ==[cmd.exe]==... so it is printing the value
of the 'cmd.exe' property but not the other two... maybe that's because
I define the property explicitly, I'm not sure... Anyway, I also ran the
MSI with debugging on, and in the log file, I see absolutely no
reference at all to the MSXML6 or the TEST properties ever being set.

[WiX-users] Can I set the Directory name attribute with a custom property value?

2009-10-23 Thread Dave Kolb
Should this work? I am getting the literal strings as the directory name. Is
the directory name attribute not formattable? Where is it documented what
is formatted or not as I have not been able to find that information.
Thanks, Dave

 

  Property Id=MYCOMPANYNAME Value=49thLatitude /

  Property Id=MYPRODUCTROOT Value=CmdMan /

 

Directory Id=CompanyRoot Name=[MYCOMPANYNAME]

  Directory Id=CmdManRoot Name=[MYPRODUCTROOT]

 

--
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay 
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users