Re: [WiX-users] Generate MSI during install

2008-05-16 Thread Matthew Sheets

To expand on some of the earlier suggestions, I would offer the following:
 * As suggested earlier, create two WiX projects--one for the server and one
for the client.
 * Create the client so that all options (or at least a many as possible)
will be used as properties.  To get the client WiX project to compile, you
may need to define default properties and values in your WiX source files.
 * As was also suggested, take a look at the Windows Installer SDK. 
Specifically, I would take a look at the "%ProgramFiles%\Microsoft
SDKs\Windows\v6.1\Samples\SysMgmt\Msi\scripts" directory if you have the
lastest Windows SDK installed.  In this folder, you will find a number of
"Wi" prefixed VBScript files for interacting with Windows Installer.  Of
particular interest might be WiRunSQL.vbs.  There are a few caveats, but you
can essentially perform basic queries against an MSI file.  If you have
defined all your configurable options as properties, you can simply UPDATE
the Properties table with the custom values.  If you adapt the WiRunSQL
vbScript file and embed it in the MSI to use as a VBScript CustomAction, you
can use Session.Property("PropertyName") to set and/or retrieve property
values from the currently-running setup process.  Feed those values to your
MSI queries, and you should be able to update the client MSI file.
 * There are some quirks in VBScript while running under Windows Installer. 
For example, from my experience, timed dialog boxes always seem to spike the
CPU and then just hang.  So, just forewarning you that a VBScript that
behaves one way as a standalone script might behave differently under
Windows Installer.
 * Install Orca.msi from the "%ProgramFiles%\Microsoft
SDKs\Windows\v6.1\bin" directory if you have not done so already.  This will
allow you to view the MSI "database" structure and view/edit table contents,
which can be helpful in verifying that an MSI file was configured correctly.

Though your desired process is a little different, I am essentially doing
other steps similar to those describe above to achieve a similar result.


Hope this helps,
Matthew


Phil Sayers wrote:
> 
> I'd love to be able to "touch" or "generate" the client MSI as part of the
> server installation, based on information entered by a network admin as
> part of the server MSI install.
> 
> This way the client side of the application would already have server
> name, ip address, remoting endpoints written into it's config file and the
> end user woudln't need to enter that info as part of the client install.
> 

-- 
View this message in context: 
http://www.nabble.com/Generate-MSI-during-install-tp17275539p17283646.html
Sent from the wix-users mailing list archive at Nabble.com.


-
This SF.net email is sponsored by: Microsoft 
Defy all challenges. Microsoft(R) Visual Studio 2008. 
http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


[WiX-users] Using Web Deployment Projects as Project References in WiX Visual Studio Projects

2008-03-03 Thread Matthew Sheets

In the "Add Reference" dialog for a WiX project in Visual Studio, Web
Deployment Projects (*.wdproj) are not included in the list of projects that
can be selected as project references.  If I manually add a project
reference (i.e. open the WiX project file in a text editor and enter the
project name, path, and GUID), I receive an error message upon building
stating "The target 'GetTargetPath' does not exist in the project".

I can add a target to the Web Deployment Project as follows (based on how
other Microsoft targets files appear), though, to eliminate the error
message:
  

I'm not sure if that is an appropriate solution, though.  How should the
"GetTargetPath" issue be addressed?  Would it be something on the WiX side
or the Web Deployment Project side?


http://blogs.msdn.com/webdevtools/archive/2008/01/25/announcing-rtw-of-visual-studio-2008-web-deployment-projects-wdp.aspx
Link to Web Deployment Projects 


Thank you,
Matthew

-- 
View this message in context: 
http://www.nabble.com/Using-Web-Deployment-Projects-as-Project-References-in-WiX-Visual-Studio-Projects-tp15816501p15816501.html
Sent from the wix-users mailing list archive at Nabble.com.


-
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


[WiX-users] Performing a Major Upgrade when only the Fourth Field of the Product Version Has Changed

2008-01-17 Thread Matthew Sheets
Using WiX v3, I would like to

*   Create a "major" upgrade installer, even when only the fourth
field of the Product Version has changed
*   Skip installation if a newer version is installed (again, even
if only the fourth field of the Product Version has changed)

 

For example, if the new Product Version is 2.3.4.5, I need to create a
single MSI file that can do any of the following:

oPerform an "clean" install

oUpgrade older versions (e.g. 1.5.2.1, 2.0.0.5, and 2.3.4.2)

oAbort installation if a newer version is already installed
(e.g. 2.3.4.9)

 

For each new version, the values of following properties are changed:

*   Product Code GUID
*   Package Code GUID
*   Product Version Number

The Upgrade Code GUID, all Component GUIDS, and ALLUSERS=1 remain
unchanged from version to version.

 

I know that according to the MSI documentation, "Windows Installer only
uses the first three fields of the product version.  If you include a
fourth field in your product version, the installer ignores the fourth
field" [ http://msdn2.microsoft.com/en-us/library/aa370859(VS.85).aspx
].  However, an earlier WiX post from 9/12/2006 seems to indicate that
even if only the fourth field has changed, some form of a Major Upgrade
is still possible.

MSI ignores the fourth field in ProductVersion so it

doesn't differentiate among ProductVersions that differ only in the

fourth field. So if you set UpgradeVersion elements to detect when the

"same" version is installed, it will treat all 1.0.0.x versions as the

same. You can do "blind" major upgrades so any version is installed (or

any version greater-than-or-equal-to), which would let you increment

just the fourth field.

-- 

sig://boB

[ http://www.nabble.com/Re%3A-Several-doubts-on-Upgrades-p6272185.html ]

 

I am unclear on what is meant by a "blind" major upgrade.

 

 

In the InstallExecuteSequence, I have the entry 

 

If I do not include an  section, the following things seem to
hold true:

*   Both older and newer versions can install
*   Both the old and new versions are listed in Add/Remove Programs
*   Rerunning the installer after that version has been installed
appears to shortcut the installation 

 

If I do include an  section,

  





  

the following things seem to hold true:

*   A newer version will uninstall the older version IF any of the
first three version parts have changed
*   Only the most recently installed version is listed in Add/Remove
Programs (good)
*   If only the fourth version part has changed, the executing MSI
will "upgrade" the current installation, even if the Product Version of
the executing MSI is less than the currently installed version (bad)
*   Rerunning the installer after that version has been installed
appears to shortcut the installation 

 

 

Is it possible to obtain the desired behavior?  I appreciate any
suggestions or information.

 

 

Thank you,

Matthew

 

-
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


[WiX-users] Setting Directories Based on Property Values (WiX 3.0.2925.0)

2007-09-14 Thread Matthew Sheets
I would like to assign a directory name based on the value of a
property.  According to the wix-user group message
http://sourceforge.net/mailarchive/message.php?msg_id=457FBE32.5050704%4
0bobs.org, "the general approach is to make the directory ID the same as
the property name."

 

That approach works fine for the property [ProgramFilesFolder], such as
used below.  It installs to C:\Program Files\Acme Tooling\Tools, which
is what I would expect.



  



  



 

Unfortunately, this static approach will not work for me, as the
requirements dictate a more dynamic approach, such as changing the value
of the property [Environment].  So, the next revision was as follows:

test

. . .



  



  



 

That failed with errors in light, as [Manufacturer] and [ProductName]
are also MSI Public Properties and can cause unforeseen side effects.
OK, so I'll use a custom action and just copy those property values over
to a different property.

test

. . .





. . .



  



  



 

So, that gets me by the light error.  When installing the MSI, though, I
shortly receive the error "Could not access network location Acme Tools"
([Manufacturer] = "Acme Tooling").  (Side Note: if [Manufacturer] is an
8.3-compliant name [e.g. "Acme"], the MSI will hang for 40 - 60 seconds
before failing with a similar error message: "Could not access network
location Acme.")  I'm not sure how to get around this "Could not access
network location" error.  At the time of the error, the log is as
follows:

MSI (s) (2C:F0) [12:26:48:236]: Note: 1: 2205 2:  3: Patch 

MSI (s) (2C:F0) [12:26:48:236]: Note: 1: 2205 2:  3: Condition 

MSI (s) (2C:F0) [12:26:48:236]: Note: 1: 1314 2: Acme Tooling 

MSI (s) (2C:F0) [12:26:48:236]: Note: 1: 1606 2: Acme Tooling 

MSI (c) (0C:D8) [12:26:48:252]: Font created.  Charset: Req=0, Ret=0,
Font: Req=MS Shell Dlg, Ret=MS Shell Dlg

 

MSI (s) (2C:F0) [12:26:52:689]: Product: Tools -- Error 1606. Could not
access network location Acme Tooling.

 

MSI (s) (2C:F0) [12:26:52:705]: Note: 1: 1606 2: Acme Tooling 

MSI (c) (0C:D8) [12:26:52:705]: Font created.  Charset: Req=0, Ret=0,
Font: Req=MS Shell Dlg, Ret=MS Shell Dlg

 

MSI (s) (2C:F0) [12:27:30:423]: Product: Tools -- Error 1606. Could not
access network location Acme Tooling.

 

Again, the properties need to support values declared or assigned at
install time, so the preprocessor-based workarounds described in other
posts won't work under this scenario.  Even [PropertyName] needs to be
easily changeable.  If necessary, I think I could even swing utilizing a
bootstrapper (such as dotNetInstaller) and/or WiRunSQL.vbs to make the
necessary property changes.

 

 

A second issue is how to get the path of a parent directory from a
folder path that exists in the registry.  Examples I saw in other
WiX-users posts seemed to deal with finding the parent directory of a
specific file; in this case, I want the parent directory of a folder.
For instance, if a third-party program is installed to
D:\Applications\UtilityApp, I need to default the installation to
install under D:\Applications (and, yes, the case of installation to the
root of a drive is covered).  I can pull the directory path (e.g.
"D:\Applications\UtilityApp") from the registry, but I'm not sure how to
derive the parent directory.  I tried adding a child Directory element
with a name of ".."; however, that was disallowed as an invalid name.  I
then tried changing the path D:\Applications\UtilityApp\ to
D:\Applications\UtilityApp\..\ (via custom actions); however, that
failed during install with an error message, "the folder path '..'
contains an invalid character."

 

 

Apart from these issues, I think I have the other multi-instance items
addressed.  I would appreciate any insight.

 

 

Thank you,

Matthew

 

-
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Problem with ConfigureIIs

2007-09-14 Thread Matthew Sheets

I experienced a similar issue, but based on what I found, I think the problem
is with the use of the iis:WebAddress element.  From the XML listed below,
in the second iis:WebDirProperties block (Id="SecureTESTDirProperties") is
an iis:WebSite block, and then under that is only one iis:WebAddress
element, which has its Secure attribute set to yes.

In the Microsoft IIS Manager GUI, you cannot define a secure port without
also defining a non-secure (TCP) port, even if you are not going to use the
non-secure port.  I thought I would see if WiX would let me get around
having to declare an unused non-secure, but I received a leak error.  After
declaring a second iis:WebAddress with a non-secure port, the problem went
away.

I don't think this is a problem with the IIS code, per se.  A simple fix is
to update the documentation to state that if a secure iis:WebAddress is
defined, a non-secure iis:WebAddress must also be defined.  An
integrity-checked fix might be to change the iis:WebAddress as follows:
 1) Keep the Port attribute required, but redefine it to be the non-secure
(TCP) port
 2) Remove the Secure yes/no attribute
 3) Add an optional SecurePort attribute, which will set the secure port (if
present)

Of course, others may have alternate ideas, but I think this is consistent
with the constraints that are enforced in the Microsoft IIS Manager GUI.


Thank you,
Matthew


Rob Mensching-2 wrote:
> 
> That means the custom action crashed.  First thing is to do is try the
> latest WiX build.  There have been tiny surgical fixes to take care of a
> couple crashes in the last few months.  Your issue may be fixed.  If not,
> then I would encourage you to build a debug version of the custom actions,
> drop a debugger on the install, and see if you can capture a callstack of
> the failure.  A bug with that callstack will go a long way to helping us
> get rid of every bug in the custom actions.
> 
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED] On Behalf Of Aaron Shurts
> Sent: Tuesday, August 14, 2007 10:11 AM
> To: wix-users@lists.sourceforge.net
> Subject: [WiX-users] Problem with ConfigureIIs
> 
> I am getting a leaked MSI handle error.  Everything was working fine until
> I added an additional website component for SSL.  Here is a snippet of the
> installer.
> Microsoft (R) Windows Installer Xml Compiler version 3.0.2925.0 -- btw
>  Id="TESTDirProperties"
> AnonymousAccess="no"
> BasicAuthentication="yes"
> DefaultDocuments="Default.asp,Default.htm,Default.aspx "
> Read="yes"
> Index="yes"
> Write="no"
> Execute="no"
> Script="yes"
> WindowsAuthentication="no" />
>Id="TESTWebApplication"
> Name="TEST"
> AllowSessions="yes"
> SessionTimeout="20"
> Buffer="yes"
> DefaultScript="VBScript"
> ScriptTimeout="90" />
>Id="TESTWSApplication"
> Name="TESTWS"
> AllowSessions="yes"
> DefaultScript="VBScript"
> ScriptTimeout="90"
> SessionTimeout="20" />
>Id="TEST_UtilsApplication"
> Name="TEST_Utils"
> AllowSessions="yes"
> DefaultScript="VBScript"
> ScriptTimeout="90"
> SessionTimeout="20" />
>   
>  Guid="9a752184-1828-4ebc-a882-406ec659b2fd" KeyPath="yes">
>ConfigureIfExists="no"
> Directory="WEBROOT"
> Sequence="1"
> Description="TEST"
> ConnectionTimeout="300"
> AutoStart="yes"
> StartOnInstall="yes"
> WebApplication="TESTWebApplication"
> DirProperties="TESTDirProperties">
> 
>  Id="TESTWSvDir"
> Directory="TESTWS"
> WebApplication="TESTWSApplication"
> DirProperties="TESTDirProperties"
> Alias="TESTWS" />
>Id="TEST_UtilsvDir"
>   Directory="TEST_UTILS"
>   WebApplication="TEST_UtilsApplication"
>   DirProperties="TESTDirProperties"
>   Alias="TEST_Utils">
>  Id="SharedControlsvDir"
>   Directory="SHARED"
>   DirProperties="TESTDirProperties"
>   Alias="SharedControls" />
> 
>   
>   
> 
> 
>Id="SecureTESTDirProperties"
>   AnonymousAccess="no"
>   AccessSSL="yes"
>   AccessSSLNegotiateCert="yes"
>   BasicAuthentication="yes"
>   DefaultDocuments="Default.asp,Default.htm,Default.aspx"
>   Read="yes"
>   Index="yes"
>   Write="no"
>   Execute="no"
>   Script="yes"
>   WindowsAuthentication="no" />
>  Guid="a04ad24b-fcc2-483a-9830-e3307a693311" KeyPath="yes">
>ConfigureIfExists="no"
> Directory="WEBROOT"
> Sequence="1"
> Description="TEST"
> ConnectionTimeout="300"
> AutoStart="yes"
> StartOnInstall="yes"
> WebApplication="TESTWebApplication"
> DirProperties="SecureTESTDirProperties">
>  Secure="yes" />
>  Id="SslTESTWSvDir"
> Directory="TESTWS"
> WebApplica

Re: [WiX-users] prerequisites .net , sqlce etc

2007-09-13 Thread Matthew Sheets

I would suggest considering 
http://www.devage.com/Wiki/ViewArticle.aspx?name=dotnetinstaller&version=0
dotNetInstaller .  In addition to supporting prerequisite installations of
the .NET Framework, it also supports installing other prerequisites such as
SQL Express.  There is also a GUI to help with creating the bootstrapper
configuration.  Additionally, the source code is available for download.

Hope this helps.


Thanks,
Matthew


Glen Harvy wrote:
> 
> Hi,
> 
> Where can I find some information of having a WiX project check for 
> prerequisites like .Net2 and SQL Compact Edition and download them from 
> MS and install them if not already on on a users machine.
> 
> Thanks,
> 
> Glen.
> 

-- 
View this message in context: 
http://www.nabble.com/prerequisites-.net-%2C-sqlce-etc-tf4435638.html#a12659909
Sent from the wix-users mailing list archive at Nabble.com.


-
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse012070mrt/direct/01/
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Performing both New Installs and Upgrades with a Common MSI

2007-08-16 Thread Matthew Sheets
Thank you for the reply.  I have removed the OnlyDetect attribute from
the UpgradeVersion element.  When moving from one version to the next, I
perform the following changes:

*   Product Version number
*   Product GUID
*   Package GUID

 

All other GUID's remain unchanged.

 

Based on http://support.microsoft.com/kb/870714, I made the "later"
scheduling of RemoveExistingProducts be after InstallFinalize in the
InstallExecuteSequence.  According to 
http://msdn2.microsoft.com/en-us/library/aa372038.aspx, InstallFinalize
appears by default to be the last action in the InstallExecuteSequence.

 

After implementing those described changes, the generated MSI can both
upgrade an existing installation (while preserving existing data and not
firing the uninstall actions) as well as load a new install; however,
multiple entries are still generated in Add or Remove Programs. 

 

I have attached the updated wxs file.  Have I missed something, or is
there a better time to schedule the RemoveExistingProducts action?

 

 

Thank you,

Matthew

 



From: Bob Arnson
Sent: Wednesday, August 15, 2007 2:01 AM
Cc: wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] Performing both New Installs and Upgrades with
a Common MSI

 

Matthew Sheets wrote: 

Major Upgrade

Advantages

*   Can set the UpgradeVersion OnlyDetect attribute to prevent a
clearing out of data during an upgrade uninstall/reinstall

Issues

*   Creates multiple entries under Add or Remove Programs


If you use OnlyDetect, you're not creating a major upgrade; that's why
you have multiple entries in ARP. As the name implies, OnlyDetect
doesn't remove the previous version. If you keep your component GUIDs
stable and schedule RemoveExistingProducts late, then MSI won't
uninstall the component and the WiX custom actions won't trigger
uninstall behavior.




-- 
sig://boB
http://joyofsetup.com/


ManagedCASample.wxs
Description: ManagedCASample.wxs
-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


[WiX-users] Performing both New Installs and Upgrades with a Common MSI

2007-08-14 Thread Matthew Sheets
Hello,

 

WiX 2.0 is being considered for use in a project since it is stable and
essentially final (escrow).  The target systems are Windows XP and
Windows 2003. 

 

The objectives for setup are as follows, but there have been issues
attempting to meet these:

*   Single setup MSI that will dynamically handle both new installs
and upgrades
*   Ability to perform configuration on new install (e.g. SQL
Server, IIS, Permissions)
*   Ability to persist configuration when upgrading (e.g. database)
*   Ability to perform cleanup on uninstall (e.g. drop database,
force deletion of installation directory [even if new files/folders have
been added], remove virtual IIS sites/applications)

 

Background

Various searches have been done related to these issues.  Some of the
more informative web pages found include the following:

*   http://support.microsoft.com/kb/555184
*   http://www.tramontana.co.hu/wix/lesson4.php
*   
http://sourceforge.net/mailarchive/message.php?msg_id=a2e077d70604031123
w3ee591c7ma684a8449b0a2ddb%40mail.gmail.com (appears very similar to my
issue, but doesn't seem to solve this particular case)
*   
http://blog.opennetcf.org/ncowburn/2005/01/04/UsingCustomActionsWithWiX.
aspx

 

 

Methods Attempted

Custom Actions

Advantages

*   Can detect in code whether each install, commit, rollback, and
uninstall action is occurring as part of a new install, reinstall,
upgrade, or removal.

Disadvantages

*   Have to write code (sometimes a lot) for what would otherwise be
simple WiX elements (e.g. database, IIS, permissions, etc.)

Issues

*   There is a major custom actions bug-during an upgrade, old
actions are executed instead of the new ones.  This has been replicated
with both Visual Studio 2005's default installer AND WiX.  See Microsoft
KB at http://support.microsoft.com/kb/555184 (note that no resolution is
provided).

 

Minor Upgrade

Issues

*   Have not found a way for the same MSI to handle both new
installs and upgrades
*   Property arguments have to be provided on the command line when
the upgrade is minor, but REINSTALL and REINSTALLMODE cannot be present
when it is a new install.

 

Major Upgrade

Advantages

*   Can set the UpgradeVersion OnlyDetect attribute to prevent a
clearing out of data during an upgrade uninstall/reinstall

Issues

*   Creates multiple entries under Add or Remove Programs

 

 

To try to get started, I have been building off a sample WiX project
available for download from 
http://blog.opennetcf.org/ncowburn/2005/01/04/UsingCustomActionsWithWiX.
aspx.  I have attached the .wxs file with which I have been working.

 

Given the stated objectives, is it possible to generate such an MSI with
WiX?  If there were a way to prevent the duplicate Add or Remove
Programs entries, the Major Upgrade method using OnlyDetect might work.
I would appreciate any insight or pointers.

 

 

Thank you,

Matthew



ManagedCASample.wxs
Description: ManagedCASample.wxs
-
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>  http://get.splunk.com/___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users