Re: [WiX-users] DIFxApp and upgrades

2013-01-16 Thread James Johnston
This MSKB article discusses how to do it:

http://support.microsoft.com/kb/259697

 -Original Message-
 From: Shane Corbin [mailto:shane_cor...@selinc.com]
 Sent: Friday, January 11, 2013 22:49
 To: wix-users@lists.sourceforge.net
 Subject: Re: [WiX-users] DIFxApp and upgrades
 
 I'm still curious how you are calling CM_Reenumerate_DevNode on the root
 devnode in your custom action.
 
 Would you mind sharing this snippet?
 


--
Master Java SE, Java EE, Eclipse, Spring, Hibernate, JavaScript, jQuery
and much more. Keep your Java skills current with LearnJavaNow -
200+ hours of step-by-step video tutorials by Java experts.
SALE $49.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122612 
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] DIFxApp and upgrades

2013-01-11 Thread James Johnston
This did the trick for us:

InstallExecuteSequence
RemoveExistingProducts Before=InstallInitialize /

I haven't had any complaints in a long time now since doing this.  At this
point, I would always schedule things this way if using DIFxApp.  As I
described in the message you quoted, we previously had
RemoveExistingProducts scheduled after InstallInitialize, which led to the
problems I described.

The downside to scheduling RemoveExistingProducts before InstallInitialize
is that if the install fails, the old version isn't restored and the user is
left with no product at all on their system.  But it's better than a
corrupted DIFxApp configuration being left on the system.

It would really be nice if the DIFxApp team would fix these issues...  Or at
least document the limitations so that at least people who read the docs
don't get trapped by this.

 -Original Message-
 From: Rob Hamflett [mailto:rob_hamfl...@sn.scee.net]
 Sent: Wednesday, January 09, 2013 14:14
 To: wix-users@lists.sourceforge.net
 Subject: Re: [WiX-users] DIFxApp and upgrades
 
 We've recently been seeing issue 1 where an upgrade doesn't work due to a
 missing registry entry.  We're currently telling customers how to do a
full
 repair on a case by case basis as this occurs.  Did anyone ever find a fix
for
 this?
 
 Thanks,
 Rob
 
 On 29/11/2010 21:23, James Johnston wrote:
  Hi,
 
  A couple questions, both regarding DIFxApp.  (We use it to install
  three drivers for three plug-and-play USB devices for a hardware
  product that we
  ship.)
 
  1.  Some time ago Rob Mensching mentioned the following on this list:
 
  Yeah, there are some design issues in the DIFxApp code around
  Upgrades I'm still trying to figure out what to do with DIFx since we
  don't have the code to fix it here. I'll try to find someone to
  forward this thread to see if we can't get some movement (not that it
has
 worked yet).
  http://www.mail-archive.com/wix-
 us...@lists.sourceforge.net/msg35219.h
  tml
 
  I am very interested in knowing whether anybody here knows what some
  of these design issues might be?  Can DIFxApp be used when an
  application must be serviced in the future?  I looked through MSDN and
  did not find any mention one way or the other regarding DIFxApp and
  upgrades.  If upgrades are not supported (which would seem like a
  serious deficiency!), what is the recommended way of servicing an app
  that uses DIFxApp?  Just what, exactly, are the caveats involved with
 upgrades and DIFx?
 
  The reason I ask is that upgrades are not going as well as we would
like.
  Currently we service our application very simply.  Every new version
  is a major upgrade: new product code, new version number.  We have
  always scheduled RemoveExistingProducts immediately after
  InstallInitialize.  We have tested this in-house on just about every
  computer at our (small) company without any issue: the upgrades
generally
 go very smoothly.
  Additionally, most of our customers have also done upgrades without
 issue.
 
  However, there have been a few customers (i.e. about 10: enough for us
  to not consider it to be an isolated incident) where they were unable
  to upgrade.  The setup program will roll back and fail when upgrading.
  Also, they are then unable to uninstall the software: again, the setup
  program rolls back when attempting to remove the product.  The MSI
  logs always point to DIFx as the problem, with DIFx indicating that
  key DIFx information in the registry is missing.  Searching Google
  seems to indicate that we may not be the only people experiencing this
  issue.  The problem has been observed on both Windows XP SP3 and
  Windows 7 (few customers use Vista).  Every setup package uses the
  version of DIFx included with WiX 3.0 (I believe it's version 2.1.1).
 
  In order to get the customer working again, we have successfully used
  the following workaround in every case: (1) delete the key file as
  specified by the driver component, (2) do a repair of the existing
  product; the absence of the key file triggers MSI/DIFx to successfully
  install the driver again,
  (3) we can now uninstall the old product/MSI, (4) the new product/MSI
  can be installed.  Unfortunately, we have not been able to reproduce
  the problem locally.  That also means that we (obviously) haven't
  identified what it is about the customer computer that causes problems.
  


--
Master HTML5, CSS3, ASP.NET, MVC, AJAX, Knockout.js, Web API and
much more. Get web development skills now with LearnDevNow -
350+ hours of step-by-step video tutorials by Microsoft MVPs and experts.
SALE $99.99 this month only -- learn more at:
http://p.sf.net/sfu/learnmore_122812
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Installing a driver in Win 7

2013-01-08 Thread James Johnston
What's wrong?  You're DPInst.  Use DIFxApp, not DPInst.  DIFxApp was
designed for MSI; you're trying to fit a square peg into a round hole using
DPInst.

For example, have you considered whether your MSI works correctly in a
rollback situation?  Uninstall?  Repair?  Situations where the user
interface has limited permissions?  Other edge cases I'm not thinking of?
Etc. etc.  The DIFxApp programmers already figured this stuff out for you
and tested it.  Failing to address this stuff could make your package a
future sysadmin's nightmare.

The 32/64-bit issue, while inconvenient, exists with DPInst anyway if I
remember right.  It's possible to generate both 32-bit and 64-bit MSIs from
the same WiX source code with DIFxApp.  This is the correct way to do driver
installation with MSI.

 -Original Message-
 From: Branko Horvat [mailto:horvat.bra...@pieps.com]
 Sent: Tuesday, January 08, 2013 11:20
 To: wix-users@lists.sourceforge.net
 Subject: [WiX-users] Installing a driver in Win 7
 
 I'm trying to make an installer using DPInst.exe as a CustomAction.
Although
 there are some solutions provided, it fails.
 I can install the driver using rightclick on .inf and Install. I can even
use
 manually DPInst.exe on installed folder.
 
 When I use Notepad.exe instead of DPInst.exe it works. Although
 DPInst.exe is inlcuded in the installed folder as DPInst64.exe. I can even
 achieve that Notepad opens our .inf file (provide parameter).
 
 The result of installing our .msi is the entry in ARP. In Device Manager
the
 device is not properly installed.
 Seeing .log shows an error in using quiet mode, or nothing. My notion was,
 the path is somehow wrong.
 So, I tried to add /path parameter but still failed.
 
 I know I can try finally using difx:Driver ... but I still try using
DPInst.exe to
 avoid taking care of
 32- or 64-bits. Do you have any idea what could be wrong?
 
 These is my fragment of trials on custom actions:
 
 Property Id=QtExec64CmdLine Value=quot;DPInst64.exequot;/
 CustomAction Id=LaunchPiepsCdc64 BinaryKey=WixCA
 DllEntry=CAQuietExec64
 Execute=immediate Return=check/
 
 The log says:
 CAQuietExec64:  Error 0x80070002: Command failed to execute.
 CAQuietExec64:  Error 0x80070002: CAQuietExec64 Failed
 
 Or
 
 Property Id='Exec64DPInst'DPInst64.exe/Property
 CustomAction Id='LaunchPiepsCdc64' Property='Exec64DPInst'
 ExeCommand='' Return='asyncNoWait' /
 
 There is no error but neither proper installation.
 
 Property Id='NotepadEXE'Notepad.exe/Property
 CustomAction Id='LaunchPiepsCdc64' Property='NotepadEXE'
 ExeCommand='[SourceDir]piepscdc.inf' Return='asyncNoWait' /
 
 Here I had to provide path [SourceDir] or target
 [INSTALLDIR]\subfolder\some.inf ...
 
 InstallExecuteSequence
 Custom Action='LaunchPiepsCdc32'
After='InstallFinalize'NOT
 VersionNT64/Custom
 Custom Action='LaunchPiepsCdc64'
 After='InstallFinalize'VersionNT64/Custom
 /InstallExecuteSequence


--
 Master SQL Server Development, Administration, T-SQL, SSAS, SSIS, SSRS and
 more. Get SQL Server skills now (including 2012) with LearnDevNow -
 200+ hours of step-by-step video tutorials by Microsoft MVPs and experts.
 SALE $99.99 this month only - learn more at:
 http://p.sf.net/sfu/learnmore_122512
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users


--
Master SQL Server Development, Administration, T-SQL, SSAS, SSIS, SSRS
and more. Get SQL Server skills now (including 2012) with LearnDevNow -
200+ hours of step-by-step video tutorials by Microsoft MVPs and experts.
SALE $99.99 this month only - learn more at:
http://p.sf.net/sfu/learnmore_122512
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] DIFxApp

2012-11-16 Thread James Johnston
Maybe the driver is not WHQL signed?

I'm not sure why you wouldn't have the same issue with DPInst, however.  I
was under the impression that the various DIFX methods (DPInst, DIFxApp,
DIFxAPI) would all call the same underlying code to perform the driver
install.  Seems like anything else would be a crazy design.

 -Original Message-
 From: Parkes, Kevin [mailto:kevin.par...@wacom.eu]
 Sent: Friday, November 16, 2012 15:29
 To: wix-users@lists.sourceforge.net
 Subject: [WiX-users] DIFxApp
 
 I'm trying to replace a driver installer (essentially a self-extracting
EXE with
 INF file etc. which runs DPInst) with a WiX-based MSI.
 
 I'm using WixDifxAppExtention and it's working except that I get a
security
 warning: Windows can't verify the publisher of this driver software
(with
 options to continue or abort driver installation). The existing EXE/DPInst
 installer doesn't produce this warning.
 
 Any idea what I might be doing wrong?
 
 Thanks
 
 
 


--
 Monitor your physical, virtual and cloud infrastructure from a single web
 console. Get in-depth insight into apps, servers, databases, vmware, SAP,
 cloud infrastructure, etc. Download 30-day Free Trial.
 Pricing starts from $795 for 25 servers or applications!
 http://p.sf.net/sfu/zoho_dev2dev_nov
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users


--
Monitor your physical, virtual and cloud infrastructure from a single
web console. Get in-depth insight into apps, servers, databases, vmware,
SAP, cloud infrastructure, etc. Download 30-day Free Trial.
Pricing starts from $795 for 25 servers or applications!
http://p.sf.net/sfu/zoho_dev2dev_nov
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Broken links on WiX web site

2012-10-15 Thread James Johnston
Ah - sorry I didn't realize the Sourceforge bug database covered the web
site, too.  Ticket filed.

 -Original Message-
 From: Rob Mensching [mailto:r...@robmensching.com]
 Sent: Sunday, October 14, 2012 03:27
 To: General discussion for Windows Installer XML toolset.
 Subject: Re: [WiX-users] Broken links on WiX web site
 
 We do, can you please file a bug?
 
 On Fri, Oct 12, 2012 at 9:15 AM, James Johnston johnstonj@inn-
 soft.comwrote:
 
  Hi,
 
  The page at:
  http://wix.sourceforge.net/manual-wix3/WixUI_dialog_library.htm
  contains some broken links.  Specifically, WixUI_Mondo and
  WixUI_Minimal are broken (404 Not Found).
 
  Not sure who maintains the web site so I'm writing to this list...
  


--
Don't let slow site performance ruin your business. Deploy New Relic APM
Deploy New Relic app performance management and know exactly
what is happening inside your Ruby, Python, PHP, Java, and .NET app
Try New Relic at no cost today and get our sweet Data Nerd shirt too!
http://p.sf.net/sfu/newrelic-dev2dev
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


[WiX-users] Broken links on WiX web site

2012-10-12 Thread James Johnston
Hi,

The page at:
http://wix.sourceforge.net/manual-wix3/WixUI_dialog_library.htm
contains some broken links.  Specifically, WixUI_Mondo and WixUI_Minimal are
broken (404 Not Found).

Not sure who maintains the web site so I'm writing to this list...

Best regards,

James Johnston


--
Don't let slow site performance ruin your business. Deploy New Relic APM
Deploy New Relic app performance management and know exactly
what is happening inside your Ruby, Python, PHP, Java, and .NET app
Try New Relic at no cost today and get our sweet Data Nerd shirt too!
http://p.sf.net/sfu/newrelic-dev2dev
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] DIFxApp and upgrades

2012-10-09 Thread James Johnston
 -Original Message-
 From: Shane Corbin [mailto:shane_cor...@selinc.com]
 Sent: Friday, October 05, 2012 18:07
 To: wix-users@lists.sourceforge.net
 Subject: Re: [WiX-users] DIFxApp and upgrades
 
 Hey James,
 
 Did you ever get any resolution to your problem regarding scanning for new
 hardware when your installation must first uninstall an older version?
 
 I'm in the same boat, and was curious if you made any progress since your
last
 post.  If you are continuing with your workaround, I'd really like more
 information about how you are implementing your custom action to rescan.
 
 Thanks!
 

Not really.  I left my custom action in there and haven't had any complaints
since then.  Calling CM_Reenumerate_DevNode on the root devnode in a custom
action seemed to work fine.  It shouldn't hurt anything to leave it in there
even if not every driver has the issue.


--
Don't let slow site performance ruin your business. Deploy New Relic APM
Deploy New Relic app performance management and know exactly
what is happening inside your Ruby, Python, PHP, Java, and .NET app
Try New Relic at no cost today and get our sweet Data Nerd shirt too!
http://p.sf.net/sfu/newrelic-dev2dev
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] wix ftdi drivers‏

2012-09-17 Thread James Johnston


 -Original Message-
 From: Branko Horvat [mailto:branko_hor...@hotmail.com]
 Sent: Monday, September 17, 2012 14:14
 To: wix-users@lists.sourceforge.net
 Subject: Re: [WiX-users] wix ftdi drivers‏
 
 
 
 
 My driver msi is now set to perMachine installation. When I comment both
 difx:Driver tags, the files are actually copied into general
programFiles
 (not into user programFiles).
 But when I uncomment Driver tag, this error occurrs (got from log file
under
 /L* switch):
 
 ...
 DIFXAPP: ERROR: no driver packages found in C:\Program Files
 (x86)\Pieps\FtdiDrivers\FtdiBusDriver\i386\
 DIFXAPP: ERROR: InstallDriverPackages failed with error 0x2 ...
 DIFXAPP: ERROR: Unable to retrieve the driver store handle corresponding
to
 componentId '{5BE845A4-9787-4218-B578-22878B31231B}'
 DIFXAPP: ERROR: Rollback failed with error 0x2 ...
 MSI (c) (00:F4) [15:55:53:473]: Product: FTDI Drivers Installer --
Installation
 failed.
 

Your difx:Driver tag needs to be in the component with the INF file.


--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] wix ftdi drivers

2012-09-14 Thread James Johnston
 James,
 
 I realised the RemoveFolder tags are necesary because I am installint into
 userprofile, not for all users on a computer as I hope it want ask admin
 permission to install.

1.  Drivers run in kernel mode and have complete control over everything on
the computer at the lowest level.  How would you expect to install such a
potentially-dangerous piece of software without being administrator?

There is no such thing as a per-user driver install.  There is no such
thing as non-administrators installing a driver.   Any such thing would be a
pretty serious breach of security in any operating system - not just
Windows.

You'd best set up your Windows installer package to install as per-machine,
and not per-user.  I don't see how a per-user installer that loads a driver
would make any sense at all, or have a happy ending.  Ours installs as
per-machine and I've had zero complaints about it.

2.  Why would you need RemoveFolder tags just for a per-user install?
Again, this makes no sense and you shouldn't need them even on a per-user
installation.

 
 If I remove difx:Driver tag then I can reproduce the file hierarchy -
actually
 not as originally is, since there are two .inf in the same directory. And,
as I
 read somewhere, each driver must be int seperate directory for wix (and
 thus also in a seperate component). I solved it that way that both created
 directories contain it's own subdirectory with x86 files (originally it
was
 common).
 I took a look of all needed files in both inf. files.

Correct, difx:Driver can handle only one INF at a time in a directory.  You
have to install into two separate directories.

 
 So the bottom line is I can manage to procuse file hierarchy as I wish (as
I
 suppose is expected).
 When I uncomment difx:Driver tags the same errors as till now:
 
 C:\Users\hob\Documents\WiX\ftdiinstall.wsx(33) : error LGHT0094 :
 Unresolved ref erence to symbol 'CustomAction:MsiProcessDrivers' in
 section 'Product:{E00E5A99- 913D-4C68-98BF-B43A471CD45D}'.
 C:\Users\hob\Documents\WiX\ftdiinstall.wsx(53) : error LGHT0094 :
 Unresolved ref erence to symbol 'CustomAction:MsiProcessDrivers' in
 section 'Product:{E00E5A99- 913D-4C68-98BF-B43A471CD45D}'.
 
 This is when I use: light.exe -ext WixDifxAppExtension ftdiinstall.wixobj
 
 When I use:
 C:\Users\hob\Documents\WiXlight.exe -ext WixDifxAppExtension -ext
 D:\tmp\ftdi\difxapp_x86.wixlib ftdiinstall.wixobj
 
 (you see I even tried with absolute path) it says:
 light.exe : error LGHT0144 : The extension
'D:\tmp\ftdi\difxapp_x86.wixlib'
 could not be loaded because of the following reason:
 Could not load file or assembly 'file:///D:\tmp\ftdi\difxapp_x86.wixlib'
 or one of its dependencies.
 The module was expected to contain an assembly manifest.
 
 This makes me think this is for .net environment.

Well, yeah.  You specified that difxapp_x86.wixlib was a WiX extension.  WiX
extensions are managed .NET assemblies.  So it's no surprise you ran into
this error.  Look at the light syntax for properly linking in a wixlib file.
Wixlib files are NOT WiX extensions, they are very different.
 


--
Got visibility?
Most devs has no idea what their production app looks like.
Find out how fast your code is with AppDynamics Lite.
http://ad.doubleclick.net/clk;262219671;13503038;y?
http://info.appdynamics.com/FreeJavaPerformanceDownload.html
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] wix ftdi drivers

2012-09-13 Thread James Johnston
 -Original Message-
 From: Branko Horvat [mailto:branko_hor...@hotmail.com]
 Sent: Thursday, September 13, 2012 12:57
 To: wix-users@lists.sourceforge.net
 Subject: Re: [WiX-users] wix ftdi drivers
 
 
  C:\Users\hob\Documents\WiX\ftdiinstall.wsx(29)
  C:\Users\hob\Documents\WiX\ftdiinstall.wsx(42)
 
 The WSX you attached got cut off at various points, can you show which
 lines of code were indicated by the faulty lines #29 and #42?
 
 Both difx:Driver tags are referred to:
 difx:Driver Sequence='1' AddRemovePrograms='no' Legacy='yes'
 PlugAndPlayPrompt='no' ForceInstall='yes' / difx:Driver Sequence='2'
 AddRemovePrograms='no' Legacy='yes' PlugAndPlayPrompt='no'
 ForceInstall='yes' /

Actually I reviewed your original message.  You're forgetting to link in the
difxapp_x??.wixlib libraries which are in your WiX bin directory.  These are
required for the correct DIFxApp binaries and table to be linked into your
installer package.

 
 
  Component Id='CompanyDirCom' Guid='A97A6647-E36F-4C9B-AFA1-
  EA65D51D0C08'
 
 
  RemoveFolder Id='RemoveCompanyDir' On='uninstall' /
 
 You don't need to have RemoveFolder.  This element can be completely
 removed.  The directories you create will be removed anyway on uninstall.
 
 This is true for all instances of RemoveFolder in your example code.
 
 
 I didn't have it at the beginning. But compiler (candle.exe) demanded it
 (maybe I didn't have components at that time yet). Also the keyValues was
 demanded at the same time (it said a keyValue must exist not a file), if I
am
 not mistaken.
 So, I've removed it and now it looks fine. Thanx!!!

It should be very rare that you actually need to use RemoveFolder.

  File Id='BusDriverSys' Source='i386\ftdibus.sys' / File
  Id='BusDriverInf' Source='ftdibus.inf' / File Id='BusDriverCat'
  Source='ftdibus.cat' /
 
 You can't install files in a component into multiple directories.
 You'll have to split this into at least two components: one for the
 i386 directory and one for the parent directory containing INF/CAT
 files.  Also, you're missing some of the files from the FTDI driver
 package - your list of files is incomplete.  Put the difxapp:Driver
 element in the parent directory component containing the INF file.
 
 The same issues apply to the FTDI port section you listed below.
 
 That makes me thinking as well. Thanks! - I just wanted to copy twice all
 three files (.inf and .cat from root driver directory and .sys from i386
 subdirectory) into the common directory and I achieved it at the beginning
 my file tags. So, I have to deny your opinion. So when I didn't bother
with
 installation (using difx:Driver tag, the file copied as I wanted: into
 FtdiBusDriver and FtdiPortDriver directores.
 But, I certainly think I should copy all the driver hierarchy and leave it
as it is
 because of .inf files.

Actually you have to copy the entire driver hierarchy.  Have you not
reviewed the INF files?  Your driver installation will fail if you don't
include all files referred to by the INF files, which includes more than
just the SYS file.  At the very least, your driver will appear unsigned and
then fail to install and/or show unsigned driver pop-ups because the
signature requires all files in the catalog to be present.

Anyone can copy some random files, but if you want to actually *install* the
driver, you need the complete driver - not just pieces of it. 


--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] wix ftdi drivers

2012-09-12 Thread James Johnston
Some comments below; they may not fix your problem, but point to other
issues in the WXS:

 -Original Message-
 From: Branko Horvat [mailto:branko_hor...@hotmail.com]
 Sent: Wednesday, September 12, 2012 09:27
 To: wix-users@lists.sourceforge.net
 Subject: [WiX-users] wix ftdi drivers
 
 C:\Users\hob\Documents\WiX\ftdiinstall.wsx(29)
 C:\Users\hob\Documents\WiX\ftdiinstall.wsx(42)

The WSX you attached got cut off at various points, can you show which lines
of code were indicated by the faulty lines #29 and #42?

 Component Id='CompanyDirCom' Guid='A97A6647-E36F-4C9B-AFA1-
 EA65D51D0C08'
 
 
 RemoveFolder Id='RemoveCompanyDir' On='uninstall' /

You don't need to have RemoveFolder.  This element can be completely
removed.  The directories you create will be removed anyway on uninstall.

This is true for all instances of RemoveFolder in your example code.

 difx:Driver Sequence='1' AddRemovePrograms='no' Legacy='no'
 PlugAndPlayPrompt='no' ForceInstall='yes' /

I would suggest changing ForceInstall to no.  If you set it to yes
like in your example, you could force downgrading the driver to an older
version if the user's system had a newer version of the driver installed.
That may cause compatibility problems with other software and devices
installed on the customer's computer that also uses an FTDI driver.

 File Id='BusDriverSys' Source='i386\ftdibus.sys' /
 File Id='BusDriverInf' Source='ftdibus.inf' /
 File Id='BusDriverCat' Source='ftdibus.cat' /

You can't install files in a component into multiple directories.  You'll
have to split this into at least two components: one for the i386 directory
and one for the parent directory containing INF/CAT files.  Also, you're
missing some of the files from the FTDI driver package - your list of files
is incomplete.  Put the difxapp:Driver element in the parent directory
component containing the INF file.

The same issues apply to the FTDI port section you listed below.


--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] WiX joins the Outercurve Foundation

2012-08-20 Thread James Johnston
Another concern might be slight alterations of the user interface.  For
example, suppose I want to slightly modify one of the user interface
templates.  I've read it's recommended to copy/paste a small snippet of user
interface WiX code into my project and customize it.  Does that mean my
entire setup project must be open source?

Actually, now that I think about it - I read that in the official WiX
manual:  http://wix.sourceforge.net/manual-wix3/WixUI_customizations.htm

 Changing the UI sequence of a built-in dialog set  It is possible to
change the default sequence of a built-in dialog set. To do so, you must
copy the contents of the Fragment/ that includes the definition of the
dialog set that you want to customize from the WiX source code to your
project.

So I guess if I follow these directions in the WiX manual then I would have
to open source my entire setup project?  It would be nice if the manual
would explicitly say one way or another.  Or if the user interface wxs files
could be licensed separately with a more permissive license.

(I wouldn't be at all surprised if Microsoft itself is violating the license
in this regard.  Given the widespread use of WiX in MSFT, surely there are
some violations like this.)

 -Original Message-
 From: Bruce Cran [mailto:br...@cran.org.uk]
 Sent: Monday, August 20, 2012 16:30
 To: General discussion for Windows Installer XML toolset.
 Subject: Re: [WiX-users] WiX joins the Outercurve Foundation
 
 On 20/08/2012 16:41, Rob Mensching wrote:
  I think wrote
  down the answer this morning:
  http://robmensching.com/blog/posts/2012/8/20/The-WiX-toolset-license
 
 Thanks, it's great to see that update on licensing.
 
 Since the 'viral' nature of copyleft licenses scares some people, it might
be
 worth if/when updating the license for the sample code to make it explicit
 that the templates generated in Visual Studio won't be under the MS-RL
 either.
 
 --
 Bruce Cran
 


--
 Live Security Virtual Conference
 Exclusive live event will cover all the ways today's security and threat
 landscape has changed and how IT managers can respond. Discussions will
 include endpoint security, mobile security and the latest in malware
threats.
 http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users


--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] How to mix 32bit driver and 64bit driver into same package?

2012-06-26 Thread James Johnston
Did you just miss the discussion that has been going on at this exact same
moment?  Someone else is trying to do the same thing as you with DPInst.

Sorry, but your approach is broken.  I doubt you're considering many of the
intricacies of Windows Installer.  Read my response at the end of
http://sourceforge.net/mailarchive/forum.php?thread_name=01cc01cd52ec%248842
7a70%2498c76f50%24%40inn-soft.comforum_name=wix-users

You shouldn't use DPInst.  It isn't supported.  DIFxApp is the supported
solution and works just fine - many of us use it without issue (mostly!).

 -Original Message-
 From: tzleon [mailto:tzl...@gmail.com]
 Sent: Tuesday, June 26, 2012 04:36
 To: wix-users@lists.sourceforge.net
 Subject: Re: [WiX-users] How to mix 32bit driver and 64bit driver into
same
 package?
 
 Now I found a solution, I gave up the difxapp_*.wixlib, but using
 dpinstall.exe instead(see
 http://www.codeproject.com/Articles/44191/Drivers-Installation-With-WiX),
 and using bootstrapper to launch the executable file while the previous
msi
 copied driver binary to system.
 Now another problem is uninstall the driver...
 
 --
 View this message in context: http://windows-installer-xml-wix-
 toolset.687559.n2.nabble.com/How-to-mix-32bit-driver-and-64bit-driver-
 into-same-package-tp7579071p7579100.html
 Sent from the wix-users mailing list archive at Nabble.com.
 


--
 Live Security Virtual Conference
 Exclusive live event will cover all the ways today's security and threat
 landscape has changed and how IT managers can respond. Discussions will
 include endpoint security, mobile security and the latest in malware
threats.
 http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users


--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] DIFxApp driver files in multiple directories

2012-06-25 Thread James Johnston
 -Original Message-
 From: Frank Jenner [mailto:frank8...@gmail.com]
 Sent: Friday, June 22, 2012 19:29
 To: General discussion for Windows Installer XML toolset.
 Subject: [WiX-users] DIFxApp driver files in multiple directories
 
 I'm attempting to use the WixDifxAppExtension to install a driver. In the
only
 DIFxApp examples I have seen (of which there are very few), all of the
files
 associated with the driver are located in the same directory, and all of
those
 files are nested directly beneath the Component that contains the
difx:Driver
 element.
 
 In my application, however, I must deploy a driver that does not have a
flat
 directory structure. In general, I cannot change the directory structure
used
 by the driver because the driver is already signed, which means that any
 changes that I make to the INF file to accommodate a new directory layout
 would invalidate the signature. Thus, I arrive at a couple of questions:
 
 1.) With the DifxAppExtension, what is the appropriate way to add a driver
 that has files in multiple directories (and therefore presumably needs
 multiple Components)?
 2.) Are there any particularly good resources out there of using the
 WixDifxAppExtension with WiX 3.x in general? It took me quite a while to
 piece together the information I needed to write the .wxs file, as well to
 construct the appropriate arguments to candle and light.

I used multiple components.  Add the DIFxApp extension elements only to the
component that holds the INF file.  It will work.

With DIFxApp, all files in all application components are installed as
normal.  So your driver will be installed into your application directory,
along with all your other files.  What the DIFxApp element will do is add a
custom action that runs at the end of setup to install the driver.  This
custom action invokes DIFX to install the driver, and DIFX doesn't care what
files were in what component - as long as you have the complete driver file
tree installed, it will work.


--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] How to mix 32bit driver and 64bit driver into same package?

2012-06-25 Thread James Johnston
 -Original Message-
 From: tzleon [mailto:tzl...@gmail.com]
 Sent: Monday, June 25, 2012 06:52
 To: wix-users@lists.sourceforge.net
 Subject: [WiX-users] How to mix 32bit driver and 64bit driver into same
 package?
 
 I wish to mix 32bit driver and 64bit driver into same package, but the
problem
 is the two referenced library difxapp_x64 and difxapp_x85 can't be
imported
 into same package, otherwise, there is a error as below:
 
 Error1   Duplicate symbol 'CustomAction:MsiProcessDrivers'
found.
 This
 typically means that an Id is duplicated. Check to make sure all your
 identifiers of a given type (File, Component, Feature) are unique.
 C:\Program Files (x86)\Windows Installer XML v3.6\bin\difxapp_x86.wixlib
   0   1
 HKeySetup
 
 How to solve this problem?

I was unable to find a method for creating an MSI that works on both 32-bit
and 64-bit Windows when using DIFxApp.  After some investigation, I
concluded that it was impossible without having access to source code of
DIFxApp to create a custom version of DIFxApp.  The solution I used was as
follows:

1.  All bit-agnostic files were specified to be stored in a common media CAB
file with a bit-agnostic filename.  This way, the same software distribution
download can support both 32-bit and 64-bit Windows without significant
increase in file size - both 32-bit and 64-bit MSI files can share the same
cabinet.

2.  All 32-bit specific or 64-bit specific files were specified to be stored
in separate CAB files: one for 32-bit and one for 64-bit.

3.  The WiX source code was customized so that it could be compiled for
either 32-bit or 64-bit use using conditional compilation.

4.  The build script builds both 32-bit and 64-bit versions using
appropriate conditional compilation variables.  The resulting shared cabinet
files (#1) are then compared to be sure they are identical, and then the
output directories are merged.

5.  Launch conditions are used to prevent the 32-bit MSI from running on
64-bit Windows.  The 64-bit MSI is specified as being a 64-bit MSI, so it
won't even run on a 32-bit system.

6.  The bootstrapper decides which MSI to use, based on the bitness of the
computer.

This solution allows you to use the MSI files as-is without fussing with any
special command line parameters (e.g. for transforms).  Maybe there is a
cleaner way to do this but I haven't found it.


--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] custom action with administrator privileges

2012-06-25 Thread James Johnston
 -Original Message-
 From: nejiba [mailto:nejiba.ta...@gmail.com]
 Sent: Monday, June 25, 2012 09:26
 To: wix-users@lists.sourceforge.net
 Subject: Re: [WiX-users] custom action with administrator privileges
 
 Re
 I was following the tutorial here:
 http://www.codeproject.com/KB/library/driver-install-with-wix.aspx
 The command usind DPinst.exe works and shows me the message the
 driver was successfully installed but my case is a little more specific..
the
 device still not working and my computer cannot detect it. I think that
the
 command wdreg do more things than simply installing the driver (add
 register key
 )
 In this case I must use the cmd command or is there an other alternative?
 Thanks!

That's because DPInst is the wrong tool for the job.  Use DIFxApp extension.
DPInst is not really supported or intended for use with Windows Installer.

The fact that this article has 18 votes and is rated 4.96 stars out of 5
speaks very poorly about the knowledge level of people at Code Project.  My
experience is that Code Project has many articles that have key errors or
omissions, or takes a fundamentally flawed approach (e.g. use of
undocumented behavior when it's not needed), but still gets a high
ranking/vote because it just works.  I suspect the site is frequented by
developers who are just looking for code to copy and paste to get it to work
on their local system, who don't care what the code is actually doing, and
who don't care about how well the resulting product will actually work,
whether it will be maintainable, whether it will work when faced with new
versions of Windows and various 3rd-party programs installed, whether it
will fail when faced with certain edge conditions, etc.

I still read Code Project articles - many of them do have useful information
and can help point me in the right direction when trying to learn from MSDN
documentation.  But I read them over with a very critical eye - I think
about whether there are simpler, better supported ways of doing what the
author is doing.  And I always revise all code used from there, and
carefully check each line of code for bugs, and check it against official
documentation to be sure that various API calls, etc. are being made
properly.  In short, I don't use any code from there without a careful code
review.  I have seen many cases where the Code Project author reinvents the
wheel, when a simple API call could have sufficed.  This is one of those
cases.
 
If you look at the end of the page, there are some comments:

I do have one question. How is doing it using the DPInst different from
using the that is part of the DifxAppExtension for WiX?

The author's response:

DifxApp can cause difficulties if you want to create one version of the
installer both for x32 and x64 platforms. From the other side, DifxApp
allows to handle driver installation rollbacks in much easier way.
 
I must say that the main reason is that I have much more experience in using
DPInst than DifxApp.

So he decided to use the incorrect, unsupported way just because he has
more experience with DPInst?  Because he was unable to figure out one of
the many possible solutions to making an MSI with DIFxApp that can work on
both 32-bit and 64-bit Windows?  At the same time, he admits his solution
doesn't handle one of the key Windows Installer features - rollback.
Apparently he's afraid of learning something new, so he tried to reinvent
the wheel and did it poorly.  Sad.


--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Windows Installer 3.1 or 4.5 for XP?

2012-06-12 Thread James Johnston
 -Original Message-
 From: Don Walker [mailto:don.wal...@versaterm.com]
 Sent: Tuesday, June 12, 2012 15:56
 To: wix-users@lists.sourceforge.net
 Subject: [WiX-users] Windows Installer 3.1 or 4.5 for XP?
 
 I'm likely to be supporting installs on Windows XP until past the MS end
of
 support date. Most of our customers running XP most likely have Windows
 Installer 3.1 installed. As far as I can tell, upgrading to Windows
Installer 4.5
 will force a reboot. Should I require Windows 4.5 anyway?

What does 4.5 offer that you need, which 3.1 does not?  If there are no
features in the newer version that you need, then why force your customers
to needlessly reboot?

Version 3.1 is included with Windows XP SP3, which we require anyway as a
prerequisite.  As long as they have XP SP3, no reboot is necessary.  Since
we don't need anything in 4.5, we don't require it.

 I have two concerns about what will happened if I don't upgrade:
 
 1. I'll use some new property or feature that is not supported by Windows
 Installer 3.1. I discovered after the fact that I had done this when I
made use
 of MsiLogFileLocation and MsiLogging in a custom action before noticing
that
 they weren't supported. The features supported seem to be well-
 documented at http://msdn.microsoft.com/en-
 us/library/aa816408%28v=vs.85%29 so as long as I am careful shouldn't be a
 big issue.

Isn't that what the InstallerVersion attribute of the Package element is
for?  We use it and haven't had any problems.  Of course, as a general rule,
I tend to carefully read all documentation about any WiX elements and
attributes before using them.  That includes both the WiX documentation and
the backing Windows Installer documentation on MSDN as well.  As you might
imagine, I've never accidentally found myself using something that wasn't
supported, anyway.  (Not carefully reading all documentation equates to
sloppy programming that is asking for trouble, in my book.)

 
 2. I am more concerned that I will end up using some new property or
 feature that is not supported by Windows Installer 3.1 indirectly through
the
 use of a WiX feature. Some of the WiX features are quite clearly linked to
 one or more Windows Installer features and can be checked. I'm not really
 clear if there are a significant number of undocumented dependencies on
 Windows Installer versions.
 
 Upgrading to Windows Installer 4.5 for XP (and Vista) looks like the
safest
 approach. Comments/opinions would be appreciated.
 


--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Bundle fails on WIN2K machine .exe is not a valid Win32 application

2012-05-09 Thread James Johnston
 -Original Message-
 From: Rob Mensching [mailto:r...@robmensching.com]
 Sent: Wednesday, May 09, 2012 05:44
 To: General discussion for Windows Installer XML toolset.
 Subject: Re: [WiX-users] Bundle fails on WIN2K machine .exe is not a
valid
 Win32 application
 
 To pass a security review at Microsoft, the VS2010 CRT must be used. The
 VS2010 CRT has the latest security defenses built in. Unfortunately, the
 VS2010 CRT does not run on Win2K.  The bad error message actually happens
 in the VS2010 CRT. Our code in Burn doesn't even have the opportunity to
 load.

A simple VC2008 C program could do something like this, as a sort of
bootloader-for-the-bootloader:

1.  Check version of Windows.
2.  If Win2000 or Win XP before SP3, throw friendly error message and exit.
(maybe ShellExecute to user's default browser for Windows Update if on XP)
3.  Extract the contained Burn installer (note: does not go and get from
Internet!).
4.  Launch the VS2010 compiled Burn.

The idea is to just do a version check, and then start the real installer.

Of course, newer VS versions introduce new security features so I understand
and support the idea behind this policy for large applications.  But this is
a simple application whose scope will be very limited.  I would think a very
thorough code review should uncover any issues.  (Besides, how are you going
to attack a dumb *bootloader* like this that doesn't even communicate?)
This is especially a critical point because it's the very first thing the
user sees, as a first run out-of-box experience.  A broken installer
with an obscure error message means the user will just move on.  Also,
because Burn is going to be widely used within Microsoft and ISVs, this is
going to be a very common problem - all the more reason to fix it.

If exceptions to this rule can't be made for cases like this then I think
someone up top needs their head checked.  As it stands now, I guess every
WiX customer who wants to address this issue is going to have to reinvent
the wheel that I have just proposed, just because of this policy.

 Next version will be even more interesting since last I checked VS11 CRT
only
 supports Win7+ (which I believe cuts support for WinXP SP3 and Vista
before
 they are out of service).

Vista too?!  That pretty much rules out every PC older than a couple years
old... let's say 3 years by the time VS11 releases... unless the user
upgraded from Vista to 7.  That's just out of touch with reality - I know a
lot of people who (1) own computers more than a couple years old, (2) don't
have the money to buy a new one, (3) don't have the expertise or money to
upgrade to Windows 7.  People like us who are comfortable upgrading to the
latest Windows operating system are the exception - not the rule.  (Perhaps
Apple has found the secret, with frequent easy-to-install $29 upgrades?)

Most people I know don't buy new computers every couple years.  That
includes myself - at home, I was running Vista on both my personal laptop
and desktop until earlier this year.  That's because Vista was good enough
and I wasn't anxious enough to spend $$$ and time reformatting to get the
fancy new Windows 7 taskbar.  Unfortunately, both computers experienced hard
drive crashes and now I have a new Win7 laptop; the desktop hasn't been
addressed yet.  Had I not experienced these hardware failures, I'd likely
still be running Vista when VS11 comes out.

(I never really understood/understand all the hate directed against Vista,
and the love directed towards Windows 7.  They are very similar operating
systems.  I suspect Vista got an unfair bad rap because the independent
hardware vendors / independent software wasn't ready yet for the big
changes; by the time Win7 came around, they had their act together.  I used
Vista even before SP1 came out and didn't really have any big complaints.) 


--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Bundle fails on WIN2K machine .exe is not a valid Win32 application

2012-05-04 Thread James Johnston
You might find the bootstrapper in Visual Studio 2008 to be useful.  We're
using it to deal with the .NET Framework 2.0 prerequisite, and it works fine
even on Win XP RTM (untested on Win2K).  (.NET 2.0 is the minimum we require
because Vista RTM includes .NET 2.0, so prerequisite install is only needed
for XP customers.)  The bootstrapper can automatically download the
framework from Microsoft and install it.  After seeing how few Vista
customers there are though, I don't really see a good reason to prefer it
over .NET Framework 3.5, which I guess comes with Windows 7.  As I recall,
the big gripe I had with .NET 3.5 was that it was extremely bloated, making
the ~20 MB .NET 2.0 install look like nothing.

For the Visual C++ 2008 runtimes, we just use the merge modules. 

If you have other prereqs, you can add them.  If your requirements are much
more complex though, I would imagine you'd be better off with something like
Burn. 

As a customer who gets my credit card information swiped at the store, I
would hope that the Win2K machines aren't Internet-facing at all.  No
security patches I would imagine these days...

 -Original Message-
 From: rdinglebham [mailto:rdin...@accelitec.com]
 Sent: Wednesday, May 02, 2012 19:28
 To: wix-users@lists.sourceforge.net
 Subject: Re: [WiX-users] Bundle fails on WIN2K machine .exe is not a
valid
 Win32 application
 
 The problem surfaced when I started bundling my MSI packages in order to
 take advantage of bootstrapping the perquisites like .NET Framework 2.0
 SP2, C++ run time libraries. We've been careful to build all of our client
 adapters in .NET 2.0/VS2008 since WIN2K is still widely used in the retail
world
 - we have a number of customers that have a mix of XPE and WIN2K in a
 single store... So my WiX 3.6 MSI packages work just fine; it's the WiX
3.6
 burn binaries that are embedded into the .EXE that are incapable with
 WIN2K.  At this point I'm just copying both the bundle EXE and the MSI to
my
 customer dropboxes. I'm just glad that I wrote all my custom actions in C#
 and not
 C++! 


--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Bundle fails on WIN2K machine .exe is not a valid Win32 application

2012-05-02 Thread James Johnston
http://www.netmarketshare.com/operating-system-market-share.aspx?qprid=11qp
customb=0qptimeframe=Mqpsp=149qpnp=11
^-- Source of my data in this message...

That is something that has been bugging me too while reading this
discussion.  So my random thoughts on this topic of OS compatibility...

The cryptic error originally reported by OP isn't good.  We only support
Windows XP SP3+ as well, but if the user double-clicks the bootstrapper /
self-extracting EXE, they need to get a messaging saying they need XP - not
some cryptic error that might turn a user away from our application.
Unfortunately, with the way Visual C++ has been dumping support for older
versions of Windows, it looks like we would need to retain an older Visual
C++ compiler (or find a competing compiler) for the sole purpose of making
our own custom bootstrapper that shows a reasonable error.  What a pain!
Would be nice if WiX prevented this piece of overhead...

From that link, I would guess that Windows 2000 usage must be close to zero
(lumped into the 2.51% Other category).  I'm less worried about that.  But
there's still significant XP usage, and dumping support for pre-SP2 versions
of XP is disturbing.  How can the bootstrapper request the user to install
SP3 if the bootstrapper itself requires SP2/SP3?

From what I have read, the situation gets much worse with VS11 since it
drops XP support completely.  This is a problem, because apparently XP still
has 46% of the market.  I know many of our customers still use it.  We can't
drop support for it.  VS11 is out of touch with reality in this respect.  If
bootstrappers and/or custom actions start requiring Vista+, we'd have to
avoid the newer versions of WiX.  We'll also have to avoid VS11 ourselves
for the time being.  The improvements in VS11 might not justify dropping
support for a lot of our customers, if it turns out not to be realistic to
ask them to upgrade.  And the concerns I already outlined about
bootstrappers not failing gracefully apply doubly-so here - even if XP drops
to, say, 10% of the market and we decide to drop support, there's still
enough out there that we need the bootstrapper to kindly request Vista+. 

It would be nice if XP suffered a precipitous drop in market share this
year, but I doubt it.  Hopefully it will go away soon.  I suspect it will
still be common for another 2 years until companies are forced to move away
from it when MS finally kills support (or suffer the security liability from
an unpatched/unsupported OS).  Some people/companies tend to avoid change
until their lack of planning forces them into it - and maybe MS dropping
support will push them over the edge to get Win7/8.  By then, VS12 would be
coming down the pipeline, and companies like us would still be stuck on
VS2010 or older due to XP compatibility concerns if we decide not to drop
support for XP just yet.  (XP is the energizer bunny or something... it
keeps going and going.  I can't remember another consumer OS version that
has had such a long life cycle!)

James

 -Original Message-
 From: Neil Sleightholm [mailto:n...@x2systems.com]
 Sent: Monday, April 30, 2012 15:57
 To: General discussion for Windows Installer XML toolset.
 Subject: Re: [WiX-users] Bundle fails on WIN2K machine .exe is not a
valid
 Win32 application
 
 I agree with dropping support for Win2k but what is a shame is that
running
 the exe doesn't display a more useful error message. I don't suppose there
is
 anything that can be done to change this?
 
 Neil 


--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Wow!

2012-03-07 Thread James Johnston
And the nice thing about an ISO is you get non-essential files as well.  For
example, a readme file - which I highly doubt is included when running
/layout.

For example, examining my ISO of Windows Driver Kit 7.1.0 shows some files
which I highly doubt are included in a /layout administrative image made.
For example, Relnote.htm and Install.htm.  Now I'll probably have to
track down and include these types of files myself.  And the ISO format is
also convenient for mounting to a virtual machine...  It's much better if a
release team can get these details straight on their own and just do it once
for everyone, like Chris says.  Now my assembled full image is probably
going to look different from someone else's.

The link to SQL Development Tools is comical.  Instead of including a link
to a single file that includes everything, they turned it into a 3 step
process that required a few paragraphs of writing to describe the whole
process.

If getting off-line images of Microsoft software is now going to include
dropping to the command line to assemble my own administrative install
point, NO THANKS!!  What an unnecessary chore that didn't used to exist.  I
hope someone on the other side of the fence is listening.

Brings back bad memories of that old Internet Explorer 4 active setup that
didn't always work.  Does anybody honestly think that web setup would still
run correctly if used today?  I bet all those CAB files it would download
from Microsoft.com are long gone.

James

-Original Message-
From: Christopher Painter [mailto:chr...@iswix.com] 
Sent: Wednesday, March 07, 2012 19:34
To: General discussion for Windows Installer XML toolset.; General
discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Wow!

Thankfully those instructions are somewhat easy atleast.  Some of these how
to create an admin install  are horribly complex.


To me, as a paying customer at a very, very large enterprise,   it annoys 
the hell out of me.  Don't make me figure out how to do this for all of the 
systems that I support.  Just give me a download link to the darn ISO.   
Something the build/release team could have done just once and published 
now has to be redone over and over by thousands of organizations.


I'm sorry, I just don't get it on this one.



From: John H Bergman (XPedient) john.berg...@xpdnt.com

Sent: Wednesday, March 07, 2012 1:04 PM

To: General discussion for Windows Installer XML toolset. 
wix-users@lists.sourceforge.net

Subject: Re: [WiX-users] Wow!


To reinforce a comment earlier about this being Microsoft's apparent 
direction as well, The latest SSDT (SQL Development Tools) uses the same 
methodology of the /layout switch.


http://msdn.microsoft.com/en-us/data/hh297027


John


-Original Message-

From: James Johnston [mailto:johnst...@inn-soft.com] 

Sent: Tuesday, March 06, 2012 10:26 AM

To: 'General discussion for Windows Installer XML toolset.'

Subject: Re: [WiX-users] Wow!


And this is why there needs to be a simple off-line bundle file ready to 
download. Seems like it shouldn't be too hard to include in the WiX build 
process, and would make a lot of people's lives easier. Realistically, I 
don't think there's a better solution than utilizing the built-in file 
downloader in a web browser for pulling in the archive. Anything else just 
makes it more complicated and unfamiliar for the user...


Dog-fooding is a great idea; having a web setup available is a good idea 
for that reason. Just don't make this the only option... Here's an idea: 
have the capability of providing both web setups and generating premade 
off-line bundles ready for download and dog-food that. I'm sure many setup 
authors (myself included) will want to provide only premade off-line 
bundles, or both premade off-line bundles and web setups (i.e. having more 
than *just* a web setup). Dog-food that! :)


-Original Message-

From: Tobias S [mailto:tobias.s1...@gmail.com]

Sent: Tuesday, March 06, 2012 09:22

To: General discussion for Windows Installer XML toolset.

Subject: Re: [WiX-users] Wow!


Interesting discussion. That brought me to the point to run wix36.exe 
/layout. As expected in a firewall protected company environment the web 
bootstrapper didn't work (see below log). Also I expect different behaviors 
in different company environments using different web download proxy virus 
scanners (or as these things are called). I think doing an implementation 
for all that is almost impossible.


But what about an approach to spend burn an additional parameter to get a 
list of URLs (e.g. /downloadurls ). Imho almost every firewall should be 
able to handle manual downloading of MSI files. Not very comfortable but at 
least an approach to get an offline image in a company environment...


Regards,

Tobias


[1BE8:1094][2012-03-06T10:10:56]: Caching bundle from:

'C:\Users\MyUser\AppData\Local\Temp\{53bade28-8480-4557-92fc-13a20c501a3e

Re: [WiX-users] Wow!

2012-03-06 Thread James Johnston
And this is why there needs to be a simple off-line bundle file ready to
download.  Seems like it shouldn't be too hard to include in the WiX build
process, and would make a lot of people's lives easier.  Realistically, I
don't think there's a better solution than utilizing the built-in file
downloader in a web browser for pulling in the archive.  Anything else just
makes it more complicated and unfamiliar for the user...

Dog-fooding is a great idea; having a web setup available is a good idea for
that reason.  Just don't make this the only option...  Here's an idea:  have
the capability of providing both web setups and generating premade off-line
bundles ready for download and dog-food that.  I'm sure many setup authors
(myself included) will want to provide only premade off-line bundles, or
both premade off-line bundles and web setups (i.e. having more than *just* a
web setup).  Dog-food that! :)

-Original Message-
From: Tobias S [mailto:tobias.s1...@gmail.com] 
Sent: Tuesday, March 06, 2012 09:22
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Wow!

Interesting discussion. That brought me to the point to run wix36.exe
/layout. As expected in a firewall protected company environment the web
bootstrapper didn't work (see below log). Also I expect different behaviors
in different company environments using different web download proxy virus
scanners (or as these things are called). I think doing an implementation
for all that is almost impossible.

But what about an approach to spend burn an additional parameter to get a
list of URLs (e.g. /downloadurls ). Imho almost every firewall should be
able to handle manual downloading of MSI files. Not very comfortable but at
least an approach to get an offline image in a company environment...

Regards,
Tobias


[1BE8:1094][2012-03-06T10:10:56]: Caching bundle from:
'C:\Users\MyUser\AppData\Local\Temp\{53bade28-8480-4557-92fc-13a20c501a3e}\.
be\WiX36.exe'
to: 'C:\ProgramData\Package
Cache\{53bade28-8480-4557-92fc-13a20c501a3e}\WiX36.exe'
[1BE8:1094][2012-03-06T10:10:56]: Registering bundle dependency
provider: {53bade28-8480-4557-92fc-13a20c501a3e}, version: 3.6.2627.0
[1D50:1394][2012-03-06T10:11:17]: Error 0x80072efd: Failed to send request
to URL:
http://wixtoolset.org/releases/3.6.2627.0/data/core.msi
[1D50:1394][2012-03-06T10:11:17]: Error 0x80072efd: Failed to send request
to URL:
http://wixtoolset.org/releases/3.6.2627.0/data/core.msi
[1D50:1394][2012-03-06T10:11:17]: Error 0x80072efd: Failed to connect to
URL: http://wixtoolset.org/releases/3.6.2627.0/data/core.msi
[1D50:1394][2012-03-06T10:11:17]: Error 0x80072efd: Failed to get size and
time for URL:
http://wixtoolset.org/releases/3.6.2627.0/data/core.msi
[1D50:1394][2012-03-06T10:11:17]: Error 0x80072efd: Failed attempt to
download URL: 'http://wixtoolset.org/releases/3.6.2627.0/data/core.msi'
to:
'C:\Users\MyUser\AppData\Local\Temp\{53bade28-8480-4557-92fc-13a20c501a3e}\W
ix'
[1D50:1394][2012-03-06T10:11:17]: Error 0x80072efd: Failed to acquire
payload from: 'http://wixtoolset.org/releases/3.6.2627.0/data/core.msi'
to working path:
'C:\Users\MyUser\AppData\Local\Temp\{53bade28-8480-4557-92fc-13a20c501a3e}\W
ix'
[1D50:1394][2012-03-06T10:11:17]: Failed to acquire payload: Wix to working
path:
C:\Users\MyUser\AppData\Local\Temp\{53bade28-8480-4557-92fc-13a20c501a3e}\Wi
x,
error: 0x80072efd.


--
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers is
just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro
Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Wow!

2012-03-05 Thread James Johnston
Also agree 100% on this for the reasons Chris mentions.  The rest of this
message is my (perhaps strong) opinion on web setups.  Web setups for
development tools in general encourage bad habits.  It might not be such a
big deal with consumer software on home computers, like Acrobat Reader 
company - which fits in with the general consumer business of buy this
mobile device [cell phone, tablet, MP3 player, laptop], don't worry about
maintenance - you'll throw it in the trash bin in a year anyway.  These
vendors don't think about long-term maintenance - a web setup is one aspect
of this.  But WiX is not consumer software, and a web setup has no place
with WiX users who are correctly managing their development environment 
processes - for the reasons Chris mentions.  (Unless you are developing
throw-away software that won't last a year).  I need to be able to check out
code from my repository 5 years down the road, and recompile it with exactly
the same tools used to originally build that software from 5 years ago.  Web
setups don't provide a guarantee that I can reproduce the same development
environment.

The best way of distributing long-lifetime software is a complete image
provided by the vendor that has not been contaminated with customer-specific
license information.  For smaller packages (like WiX), that is often a
single setup executable.  For larger packages (e.g. Office or Visual
Studio), it MUST take the form of an ISO file.  Send me my product key
separately, thank you.  I recently bought a copy of Office 2010 Pro online.
The setup was provided in a self-extracting EXE with the product key already
embedded in it.  I specifically sought out the option to order a backup
DVD - especially because I wanted a perfect, unmodified image of MS Office
that wasn't contaminated with customer-specific information, and didn't
require a self-extractor.  Why can't they just provide the ISO for download
after I buy the software?  Beats me.  Heck, why don't they just put the
Office ISO available for public download on the web site?  With Office
Product Activation, there's really no reason why not - the ISO would install
a trial version until you activate it...  I really don't want to see Visual
Studio go down the path Office has taken with distribution.

I was happy with the way WiX 3.0 was distributed:  full MSI file, full
binary archive, and source code archive.  Please keep those options, it was
perfect. :) No need to mess with funny distribution methods like MS Office,
Adobe, etc. do.

More ranting:  web setups have been one of my biggest annoyances in setup
for the past several years.  Call me old-fashioned, but when the vendor then
makes it difficult to find a direct link to an offline installer to bypass
the web install junk, I then start getting irate.  Requiring me to run with
some /layout option instead of providing a complete, offline image
definitely falls under the category of getting me irate.  (What if I don't
run it perfectly and get a perfect, definitive image of everything needed
for an offline distribution?)  A downloader that installs itself onto my
computer (separate from the software being installed, and requiring me to
later remove it using Add/Remove Programs) is another highly offensive
behavior.  Making me install ActiveX controls is another way.  So at the end
of the day, there would have better be an offline installer ready for
one-click download.  Oftentimes, the built-in downloader in my web browser
provides a better, consistent experience (e.g. pause/resume, and better
handling if the connection drops) - and it doesn't leave behind additional
unwanted cruft on my computer.  I realize Burn might not offend in all these
different ways - but with every software vendor doing their own thing, it is
better for me to not waste my time, and just get the offline installer.


-Original Message-
From: Christopher Painter [mailto:chr...@iswix.com] 
Sent: Monday, March 05, 2012 15:49
To: Rob Mensching; General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Wow!

Rob,

Regarding /layout,  all developers *SHOULD* be doing it despite losing those
savings.  (Assuming any savings is actually realized based on how many
developers are installing the software. )


Anyone involved in the process of developing software ( especially build and
release engineering )  should have mature policies regarding the 
ability to track and archive changes to the development environment.If 
I have to rebuild a build machine or developer machine I have to be able go
back and reinstall all of the tools exactly the way they were originally
intended. 


Relying on content for a web-enabled installer to be available 1,5,10 years
down the road ( we still get requests to rebuild VB6 applications! )  is a
horrible practice as the external dependency is outside of your control.  
You must keep your own archive of the tool to ensure the SLA can b met.  
Everyone who understands CM should be 

Re: [WiX-users] difx extension and perMachine installs

2012-01-18 Thread James Johnston
You may have signed with your self-signed certificate, and you may even have
added it to some random place in the certificate store, but your driver
isn't WHQL signed.  Please review these topics, depending on what your
operating system is:
http://msdn.microsoft.com/en-us/library/ff543654(VS.85).aspx

Specifically, they state the following regarding quiet installation (which
you are trying to do by turning off Legacy):

 * Windows Vista/7 quiet install of Authenticode-signed non-WHQL driver: If
the certificate that was used to sign the driver package is not installed in
the user's certificate stores [Trusted Publishers I believe] before the
installation, the installation will fail.

To be precise, even if you sign your driver with Authenticode with VeriSign
/ trusted root CA, you can't install it quietly on a fresh copy of Windows
because it's not WHQL-class and your certificate isn't in Trusted
Publishers.  Only WHQL-class, Authenticode-signed drivers can be installed
quietly on a clean copy of Windows.

 * Windows XP quiet install of Authenticode-signed non-WHQL driver: Because
of a limitation in Windows XP and Windows 2000, the DIFx tools cannot
perform a quiet installation of PnP function drivers.

Have you even tried turning on the Legacy option?  I bet you'll still get
some warnings that you have to click through when you turn Legacy on.  Just
try it and see what happens!  The thing to do is probably just turn Legacy
on for development.  Once you have your driver WHQL signed, turn it off.

Maybe you can get around this on Windows Vista by adding your self-signed
cert to both trusted root CAs and trusted publishers, I don't know.  Never
bothered to try.  The only real solution that works is something
WHQL-signed, and I believe the Authenticode signature has to come from
VeriSign.  Then you can turn Legacy off and it will work on Windows 2000 and
up.

Your original e-mail that stated you got the TRUST_E_NOSIGNATURE error makes
it pretty obvious what the problem is - you don't have a valid signature for
some reason.  Turn on Legacy mode, and the resulting prompts may give you
some clues as to what is going on.

Regarding per-user vs. per-machine: I don't really see how it's possible to
do per-user when a driver is installed.  I set my install (which includes
drivers) to be per-machine only to avoid confusion.

James

-Original Message-
From: Peter Hull [mailto:peterhul...@hotmail.com] 
Sent: Tuesday, January 17, 2012 22:17
To: WiX Users
Subject: Re: [WiX-users] difx extension and perMachine installs


 If the driver is not signed, and you say it is not, then you need the 
 Legacy option. I did say that; what I meant was not signed with a
certificate from a CA. It is self-signed at the moment. Apologies for the
confusion.
I'd still like to hear if anyone has any comments on a per-user install
which includes a device driver - is it always better to do it per-machine.
Pete
  

--
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers is
just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro
Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] difx extension and perMachine installs

2012-01-17 Thread James Johnston
The driver will be signed for production; it just isn't at the moment

It doesn't matter what will eventually be done.  What matters is that your
driver is not currently signed.  The Legacy option / Windows can't see into
the future and know that you're eventually going to sign it.

I shouldn't need the Legacy option

If the driver is not signed, and you say it is not, then you need the Legacy
option.  Even if you eventually plan to sign it.  You'll just want to
remember to turn Legacy back off when you eventually do sign the driver.

James

-Original Message-
From: Peter Hull [mailto:peterhul...@hotmail.com] 
Sent: Monday, January 16, 2012 22:21
To: WiX Users
Subject: Re: [WiX-users] difx extension and perMachine installs


Thanks James, good point.
The driver will be signed for production; it just isn't at the moment. I
shouldn't need the Legacy option.
I've been mulling over perUser vs. perMachine installs and my conclusion is
that there's no point in a per-user install because the user would need to
be an admin anyway (or be elevated) to install the driver.
So I was a bit surprised when my per-machine installer failed but I _think_
it's because of where I put my self-signed certificate (in the user store,
not the machine store) - I just want to be sure that I'm not missing
something and the install won't fail in the field, and you guys are the
experts!
ThanksPete




 From: johnst...@inn-soft.com
 To: wix-users@lists.sourceforge.net
 Date: Mon, 16 Jan 2012 19:29:41 +
 Subject: Re: [WiX-users] difx extension and perMachine installs

 Did you remember to set the Legacy attribute to yes on your Driver 
 element?

 See http://wix.sourceforge.net/manual-wix3/difxapp_xsd_driver.htm for 
 more info. Specifically:

 Legacy YesNoType If set to yes, configures DIFxApp to install 
 unsigned driver packages and driver packages with missing files

 Also see http://msdn.microsoft.com/en-us/library/ff547653(VS.85).aspx 
 for more info on what legacy mode is.

 James

 -Original Message-
 From: Peter Hull [mailto:peterhul...@hotmail.com]
 Sent: Monday, January 16, 2012 14:59
 To: WiX Users
 Subject: [WiX-users] difx extension and perMachine installs



 I am building an installer with a device driver, to be installed with 
 the WiX difx extension. The driver is self-signed for testing 
 purposes. I set my Package element to Package Description=...
  InstallerVersion=200
  InstallScope=perUser
  Compressed=yes
  InstallPrivileges=elevated / and everything seemed
fine.
 However I reasoned that a device driver had better be perMachine so I 
 changed the InstallScope to perMachine.
 Now the installer fails and rolls back. Looking at the logs it is 
 difx, returning error TRUST_E_NOSIGNATURE.
 My questions:
 1. Does WiX handle the case where a perUser install has a device 
 driver (as long as InstallPrivileges is elevated)?
 2. Am I correct in saying that the problem is my self-signed 
 certificate - it's trusted by 'me' but for a perMachine install it is no
longer trusted?

 Thanks in advance,
 Pete



 --
 --
 --
 RSA(R) Conference 2012
 Mar 27 - Feb 2
 Save $400 by Jan. 27
 Register now!
 http://p.sf.net/sfu/rsa-sfdev2dev2
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users


 --
 
 RSA(R) Conference 2012
 Mar 27 - Feb 2
 Save $400 by Jan. 27
 Register now!
 http://p.sf.net/sfu/rsa-sfdev2dev2
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users
  

--
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers is
just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3, Metro
Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
___
WiX-users mailing list
WiX-users@lists.sourceforge.net

Re: [WiX-users] difx extension and perMachine installs

2012-01-16 Thread James Johnston
Did you remember to set the Legacy attribute to yes on your Driver
element?

See http://wix.sourceforge.net/manual-wix3/difxapp_xsd_driver.htm for more
info.  Specifically:

Legacy YesNoTypeIf set to yes, configures DIFxApp to install
unsigned driver packages and driver packages with missing files

Also see http://msdn.microsoft.com/en-us/library/ff547653(VS.85).aspx for
more info on what legacy mode is.

James

-Original Message-
From: Peter Hull [mailto:peterhul...@hotmail.com] 
Sent: Monday, January 16, 2012 14:59
To: WiX Users
Subject: [WiX-users] difx extension and perMachine installs



I am building an installer with a device driver, to be installed with the
WiX difx extension. The driver is self-signed for testing purposes. I set my
Package element to Package Description=... 
                 InstallerVersion=200 
                 InstallScope=perUser 
                 Compressed=yes 
                 InstallPrivileges=elevated / and everything seemed fine.
However I reasoned that a device driver had better be perMachine so I
changed the InstallScope to perMachine. 
Now the installer fails and rolls back. Looking at the logs it is difx,
returning error TRUST_E_NOSIGNATURE.
My questions:
1. Does WiX handle the case where a perUser install has a device driver (as
long as InstallPrivileges is elevated)?
2. Am I correct in saying that the problem is my self-signed certificate -
it's trusted by 'me' but for a perMachine install it is no longer trusted?

Thanks in advance,
Pete


  

--
RSA(R) Conference 2012
Mar 27 - Feb 2
Save $400 by Jan. 27
Register now!
http://p.sf.net/sfu/rsa-sfdev2dev2
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
RSA(R) Conference 2012
Mar 27 - Feb 2
Save $400 by Jan. 27
Register now!
http://p.sf.net/sfu/rsa-sfdev2dev2
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Identifying Features that have been installed

2011-08-25 Thread James Johnston
You could always use the COM library if you're not comfortable with the C
API calls.  Add a COM reference to Microsoft Windows Installer Object
Library to your project...

Installer.get_Features and Installer.get_FeatureState look like they might
be useful.

-Original Message-
From: Anil Patel [mailto:apatel...@googlemail.com] 
Sent: Thursday, August 25, 2011 11:12
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Identifying Features that have been installed

Hi Peter,

Really appreciate your feedback on this.

The MsiGetEnumsFeatues() is defined as

UINT MsiEnumFeatures(
  __in   LPCTSTR szProduct,
  __in   DWORD iFeatureIndex,
  __out  LPTSTR lpFeatureBuf,
  __out  LPTSTR lpParentBuf
);

So to get the product code, I found this code

[DllImport(msi, CharSet = CharSet.Auto)]
static extern int MsiGetProductCode(string component, StringBuilder
buffer);

public static string GetProductCode(string component)
{
StringBuilder productCodeStringBuilder = new StringBuilder(512);
switch (MsiGetProductCode(component, productCodeStringBuilder))
{
case ERROR_SUCCESS:
return productCodeStringBuilder.ToString();
// *Please* don't actually just throw an exception like
this.
// Throw the relevent exception based on the error code
returned.
case ERROR_BAD_CONFIGURATION:
throw new Exception(The configuration data is
corrupt.);
case ERROR_INSTALL_FAILURE:
throw new Exception(The product code could not be
determined.);
case ERROR_INVALID_PARAMETER:
throw new Exception(An invalid parameter was passed to
the function.);
case ERROR_UNKNOWN_COMPONENT:
throw new Exception(The specified component is
unknown.);
default:
throw new Exception();
}
}

The problem is thay symbolic constants in the switch statement (eg
ERROR_INVALID_PARAMETER which are uints) aren't recognised so error on
compile.

Do you know how I can resolve these. I'm assuming there might be an Enum for
them but I can't locate them.

Again any help would be appreciated.

Regards,
Anil.


On Thu, Aug 25, 2011 at 11:13 AM, Peter Shirtcliffe
pshirtcli...@sdl.comwrote:

 MsiEnumFeatures()
 http://msdn.microsoft.com/en-us/library/aa370098%28v=vs.85%29.aspx


 -Original Message-
 From: Anil Patel [mailto:apatel...@googlemail.com]
 Sent: 25 August 2011 11:08
 To: General discussion for Windows Installer XML toolset.
 Subject: [WiX-users] Identifying Features that have been installed

 Hello,

 I have a configuration program that is run manually by a user 
 (following a new install or a change to an existing installation) 
 which allows the user to configure the installed features.

 There is a requirement to disable the configuration of features not 
 installed by the user.

 The question is, is there a way for the configuration program to 
 identify which featues have been installed?

 I could record this data into the registry during the install and 
 remove it when a feature is uninstalled but I just wondered if there 
 was any other way of doing this.

 Thank you for your time.


 Regards,
 Anil.

 --
 ---
 -
 EMC VNX: the world's simplest storage, starting under $10K The only 
 unified storage solution that offers unified management Up to 160% 
 more powerful than alternatives and 25% more efficient.
 Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users
 SDL PLC confidential, all rights reserved.
 If you are not the intended recipient of this mail SDL requests and 
 requires that you delete it without acting upon or copying any of its 
 contents, and we further request that you advise us.
 SDL PLC is a public limited company registered in England and Wales.
  Registered number: 02675207.
 Registered address: Globe House, Clivemont Road, Maidenhead, Berkshire 
 SL6 7DY, UK.



 --
  EMC VNX: the world's simplest storage, starting under $10K 
 The only unified storage solution that offers unified management Up to 
 160% more powerful than alternatives and 25% more efficient.
 Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users


--
EMC VNX: the world's simplest storage, starting under $10K The only unified
storage solution that offers unified management Up to 160% 

Re: [WiX-users] WiX Wrappers: For or against?

2011-08-22 Thread James Johnston
I second the vote for WixEdit.  I used it when first setting up my
installer.  Helped me learn WiX to some extent.

Now that the files are littered with preprocessor commands and I only make
small, minor changes, I find it easier to edit the WXS files directly in a
text editor.

One thing I feel is important is commenting.  There are several places where
I do things and the reasons for it are not immediately clear.  Comments help
with that, but you can't edit comments in WixEdit.  If I do use WixEdit, I
generally go back and add comments to the file as needed.

-Original Message-
From: Peter Shirtcliffe [mailto:pshirtcli...@sdl.com] 
Sent: Monday, August 22, 2011 08:40
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] WiX Wrappers: For or against?

I use WixEdit and like it. It's a GUI editor plus a simple wizard and a
couple of other features. You can switch into the .wxs file easily using one
of the menu items that runs a text editor of your choice and it will detect
and reload changes when you switch back. The files it generates can be
easily compiled with the command line tools. I find it best for small, quick
projects, such as test installers. It was also helpful when I was learning
Wix. Our main products' installers are large and complex and I use Wix
Votive solutions for those.

-Original Message-
From: Alec Taylor [mailto:alec.tayl...@gmail.com]
Sent: 20 August 2011 11:18
To: General discussion for Windows Installer XML toolset.
Subject: [WiX-users] WiX Wrappers: For or against?

Good evening,

I've seen quite a few WiX Wrapper around, including a few Open-Source ones.

Examples:
* http://sourceforge.net/projects/wixedit/ (not 100% sure this is a wrapper)
* http://sourceforge.net/projects/keeyai-flame/

What are your thoughts on WiX Wrappers, would you recommend a certain one
(not necessarily from above), or would you recommend figuring it out without
wrappers?

(e.g. just use CLI compilers and Notepad2)

Thanks for all suggestions,

Alec Taylor


-
-
Get a FREE DOWNLOAD! and learn more about uberSVN rich system, user
administration capabilities and model configuration. Take the hassle out of
deploying and managing Subversion and the tools developers use with it.
http://p.sf.net/sfu/wandisco-d2d-2
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users
SDL PLC confidential, all rights reserved.
If you are not the intended recipient of this mail SDL requests and requires
that you delete it without acting upon or copying any of its contents, and
we further request that you advise us.
SDL PLC is a public limited company registered in England and Wales.
Registered number: 02675207.
Registered address: Globe House, Clivemont Road, Maidenhead, Berkshire SL6
7DY, UK.



--
uberSVN's rich system and user administration capabilities and model
configuration take the hassle out of deploying and managing Subversion and
the tools developers use with it. Learn more about uberSVN and get a free
download at:  http://p.sf.net/sfu/wandisco-dev2dev
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
uberSVN's rich system and user administration capabilities and model 
configuration take the hassle out of deploying and managing Subversion and 
the tools developers use with it. Learn more about uberSVN and get a free 
download at:  http://p.sf.net/sfu/wandisco-dev2dev
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Registry permissions are not inherited

2011-08-08 Thread James Johnston
I replaced Permission with util:PermissionEx in the sample below.
Unfortunately, ordinary users are still not allowed to write to MySubKey.
An examination of the permissions in Registry Editor shows that entries were
added to the existing ACL for MyFile.  (i.e. the existing entries were not
stepped on like the old Permission element did - a good thing).  But they
were set to only apply to the current key, and not to subkeys - no
inheritance.

An examination of the custom action code in secureobj.cpp shows
ea.grfInheritance = NO_INHERITANCE if the object is not a
folder/directory.  Now this is with WiX 3.0 sources but I searched the
tracker and apparently somebody else reported the same issue last year with
WiX 3.5 and it hasn't been looked at yet:

http://sourceforge.net/tracker/index.php?func=detailaid=3029343group_id=10
5970atid=642717
Another similar ticket:
https://sourceforge.net/tracker/index.php?func=detailaid=2612975group_id=1
05970atid=642717
And one more:
https://sourceforge.net/tracker/index.php?func=detailaid=1241592group_id=1
05970atid=642717
And finally:
https://sourceforge.net/tracker/index.php?func=detailaid=2991460group_id=1
05970atid=642714
(all seem to be duplicates)

In fact looking at the WiX 3.6 code shows this code is still unmodified and
in place.  So this explains why I still have issues with util:PermissionEx.

It seems to me that the best solution would be to specify inheritance via
attribute, just as the tracker suggests.  I can't think of a workaround when
using util:PermissionEx because subkeys created later by my application will
not inherit the Everyone entry and so other users won't be able to read
it...  So this raises two questions:

1.  Any good workaround to get things inheriting properly?
2.  Any feedback on the previous feature requests?  I notice that an active
subscriber actually posted a patch.  But this was 3 years ago; it seems it
didn't go anywhere?  See:
http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/PermissionEx-e
nhancements-wix-Bugs-2127236-2016138-td1303935.html
Also see a follow-up:
http://windows-installer-xml-wix-toolset.687559.n2.nabble.com/Chnaged-to-Cod
y-Cutrer-s-SecureObjects-enhancements-tt1563118.html

I was originally thinking of offering to implement this feature as I would
like to see this happen, but after seeing that somebody else already did and
nothing really seemed to happen with it - I am not sure if that would be
worth my time.  (Also I have no idea what is involved with contributing to
WiX - I haven't been able to find a web page describing how this process
works for WiX - many open source projects have an entire page dedicated to
this topic).  I am left scratching my head...  Is this something that will
eventually become part of a future WiX version, or were there reasons for
not merging code for the new feature?  Or does the code need more work?  It
would be nice to not have to constantly merge an old patch with every new
version of WiX. :)

Best regards,

James Johnston

-Original Message-
From: Rob Mensching [mailto:r...@robmensching.com] 
Sent: Saturday, August 06, 2011 14:56
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Registry permissions are not inherited

That is the behavior of the Windows Installer. Take a look at the
WixUtilExtension PermissionEx.

On Fri, Aug 5, 2011 at 12:44 PM, James Johnston
johnst...@inn-soft.comwrote:

 Hi,

 I'm trying to create some default registry keys for a component in 
 HKEY_LOCAL_MACHINE that all users should have full access to.  Here's 
 what I've got so far:

 Component Id=MyFile.dll Guid=*
File Id=MyFile.dll KeyPath=yes Source=MyFile.dll /
RegistryKey Action=create Key=SOFTWARE\MyCompany Root=HKLM
RegistryKey Action=create Key=MyFile
Permission User=Everyone GenericAll=yes /
Permission User=Administrators GenericAll=yes /
RegistryKey Action=create Key=MySubKey
RegistryValue Name=MyValue Type=integer Value=1 /
/RegistryKey
/RegistryKey
/RegistryKey
 /Component

 The keys I would like created:

   * HKLM\SOFTWARE\MyCompany: should have default ACL that users cannot 
 write to (inherit from parent)
   * HKLM\SOFTWARE\MyCompany\MyFile: all users should have read/write 
 access to this key
   * HKLM\SOFTWARE\MyCompany\MyFile\MySubKey: all users should have 
 read/write access to this key (inherit from parent)

 Unfortunately, the last key seems to be created with an ACL that only 
 allows administrators to write to the key (same ACL as for the main 
 SOFTWARE
 key).  Intuitively I would think that the RegistryKey underneath the 
 key granting everyone access would also grant everyone access.  But 
 that seems not to be the case.

 Most puzzling is that examining MySubKey in the registry editor 
 shows that the Include inheritable permissions from this object's 
 parent is checked.
 And creating new keys under MyFile key in registry editor works

[WiX-users] Registry permissions are not inherited

2011-08-05 Thread James Johnston
Hi,

I'm trying to create some default registry keys for a component in
HKEY_LOCAL_MACHINE that all users should have full access to.  Here's what
I've got so far:

Component Id=MyFile.dll Guid=*
File Id=MyFile.dll KeyPath=yes Source=MyFile.dll /
RegistryKey Action=create Key=SOFTWARE\MyCompany Root=HKLM
RegistryKey Action=create Key=MyFile
Permission User=Everyone GenericAll=yes /
Permission User=Administrators GenericAll=yes /
RegistryKey Action=create Key=MySubKey
RegistryValue Name=MyValue Type=integer Value=1 /
/RegistryKey
/RegistryKey
/RegistryKey
/Component

The keys I would like created:

   * HKLM\SOFTWARE\MyCompany: should have default ACL that users cannot
write to (inherit from parent)
   * HKLM\SOFTWARE\MyCompany\MyFile: all users should have read/write access
to this key
   * HKLM\SOFTWARE\MyCompany\MyFile\MySubKey: all users should have
read/write access to this key (inherit from parent)

Unfortunately, the last key seems to be created with an ACL that only allows
administrators to write to the key (same ACL as for the main SOFTWARE
key).  Intuitively I would think that the RegistryKey underneath the key
granting everyone access would also grant everyone access.  But that seems
not to be the case. 

Most puzzling is that examining MySubKey in the registry editor shows that
the Include inheritable permissions from this object's parent is checked.
And creating new keys under MyFile key in registry editor works just fine
when running as a user - so the permissions are inherited.  Looking at the
ACL entry for Everyone on MyFile key says that the entry applies to
this key and subkeys so again, I'm not sure why it isn't working.

What do I need to do to achieve my goal of having the Everyone entry
propagate to the subkeys created by MSI - as outlined in my list of desired
ACLs?  I realize I could probably add duplicate Permission elements to the
registry values being created.  But that doesn't sound very ideal; it seems
like there must be a better way!

Best regards,

James Johnston


--
BlackBerryreg; DevCon Americas, Oct. 18-20, San Francisco, CA
The must-attend event for mobile developers. Connect with experts. 
Get tools for creating Super Apps. See the latest technologies.
Sessions, hands-on labs, demos  much more. Register early  save!
http://p.sf.net/sfu/rim-blackberry-1
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] DIFxApp does not properly rollback to the old driverwhen doing a major upgrade

2011-07-01 Thread James Johnston
 it when
customers try to point this out.  It's very frustrating to deal with.
(Heck... if one of those two products was open source, I would have
seriously considered fixing it and submitting a patch...)

James 

-Original Message-
From: Rob Hamflett [mailto:r...@snsys.com] 
Sent: Wednesday, April 27, 2011 08:00
To: wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] DIFxApp does not properly rollback to the old
driverwhen doing a major upgrade

I emailed difxt...@microsoft.com and received this response.
AFAIK, Difx doesn't do anything to explicitly support
RemoveExistingProducts.  The scenario described on that page would require
it to rollback a partial install of a new driver and the previous uninstall
of the old driver.  The limited functionality in the rollback mechanism of
DIFx does not support that.

So it looks like there isn't going to be a fix for this.

Rob

On 11/03/2011 14:00, Rob Hamflett wrote:
 I appear to be looking at the same problem.  I was able to reproduce 
 it by hitting 'cancel' near the end of an uninstall and letting it 
 rollback.  After that uninstallation failed.  Performing a repair 
 fixed things.  Did you email the difx team at the email address Quinton
suggested, and if so, did you ever hear anything back.

 Thanks,
 Rob

 On 10/12/2010 20:37, James Johnston wrote:
 Seeing as how this seems to be a fundamental problem with DIFxApp not 
 handling all the upgrade possibilities well, I was curious to see how 
 other products do things and so I ripped apart some MSIs in Orca.  I 
 was looking to see if DIFxApp was set up the same way (CustomAction 
 table).  I also inspected the placement of the RemoveExistingProducts 
 action since after my previous e-mail I believe that this plays a 
 critical role in whether this corrupted system state may occur.  
 Since I haven't seen any other indication or documentation on the 
 Internet (a Google search for RemoveExistingProducts and DIFxApp 
 reveals little), I thought it would be useful to report my findings 
 so others can see what some commercial software is doing.  My
 findings:

 All products using DIFxApp place MsiProcessDrivers and 
 MsiCleanupOnSuccess actions in the normal places.  CustomAction types 
 are always the same.  I identified the program used to compile the 
 MSI by looking at the self-named custom actions each install tool 
 tends to create (e.g. InstallShield has its own DLL with tons of custom
actions).

 Refer to
 http://jpassing.com/2007/06/16/where-to-place-removeexistingproducts-
 in-a-ma jor-msi-upgrade/ to better understand the placement of 
 RemoveExistingProducts action.  Examining this table leads me to 
 believe that placement between InstallInitialize and InstallFinalize 
 is the best place, since a canceled setup will always leave the old 
 version on the computer, no matter what.  But this doesn't seem to 
 work with DIFxApp due to its bug, as previously noted.

 My product (with the rollback problem):  Compiled with WiX and uses
DIFxApp.
 RemoveExistingProducts is placed after InstallInitialize.  According 
 to the previous link, a failure at any time (uninstall or reinstall) 
 results in only the old version remaining: leaving system state 
 exactly as it was found.  Unfortunately, as previously noted, a bug 
 in DIFxApp prevents this from happening.

 Apple Mobile Device Support (included with iTunes; presumably their 
 iPod drivers, etc.).  Compiled with WiX and uses DIFxApp.  
 RemoveExistingProducts is placed after InstallFinalize.  Probably the 
 DIFxApp bug is not a problem here, because the new version is 
 installed before the old version is uninstalled.  An error in the new 
 version setup (from DIFx or other source) would still leave the old
version and its drivers untouched.  An error in
 the old version uninstall would leave the new version   its drivers
 untouched.  According to the table at the above link, the pitfall is 
 that if the uninstall fails, then BOTH versions of the product remain 
 installed on the computer.  This seems like a very inconsistent, 
 illogical state to be in; I can imagine that there could be some 
 issues with a lot of products (including mine) if this were to 
 happen.  (Perhaps an MSI expert can convince me otherwise?  
 Otherwise, I wonder if Apple's software can get itself in a bad way 
 if I click Cancel at just the right moment.)

 Microsoft LifeCam (webcam driver).  Don't know what compiled this; I 
 didn't see any obvious indications.  It uses DIFxApp.  
 RemoveExistingProducts is placed after InstallInitialize.  It 
 therefore appears to be in a very similar configuration as with my 
 product, and I believe it would leave the user's DIFxApp state 
 inconsistent if the upgrade was canceled at just the right moment.  
 It is interesting to note that the MSI file is wrapped by a
 bootstrapper: the MSI itself throws no UI.  The bootstrapper does NOT 
 present the user with a Cancel button.  Perhaps this is a reason why?

 Oracle VirtualBox

Re: [WiX-users] Windows 7 MSI privileges

2011-03-17 Thread James Johnston
A list of reasons why not to use selfreg:

http://msdn.microsoft.com/en-us/library/aa371608(VS.85).aspx

-Original Message-
From: Pally Sandher [mailto:pally.sand...@iesve.com] 
Sent: Thursday, March 17, 2011 10:46
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Windows 7 MSI privileges

If you want to do what is right you could start by not using
self-registration.

Palbinder Sandher
Software Deployment Engineer
T: +44 (0) 141 945 8500
F: +44 (0) 141 945 8501 

http://www.iesve.com
**Design, Simulate + Innovate with the Virtual Environment** Integrated
Environmental Solutions Limited. Registered in Scotland No. SC151456
Registered Office - Helix Building, West Of Scotland Science Park, Glasgow
G20 0SP Email Disclaimer

-Original Message-
From: The Eligible Bachelors [mailto:theeligiblebachel...@yahoo.com]
Sent: 16 March 2011 13:02
To: wix-users@lists.sourceforge.net
Subject: Re: [WiX-users] Windows 7 MSI privileges

Great. I added Execute=deferred and Impersonate=no to my custom actions
and it seemed to fix the problem.

I certainly dont want to go against UAC. I want to do what is right,
whatever that may be, so thanks for the help.

 You need Execute=deferred custom actions with Impersonate=no. This 
 will allow your custom actions, and subsequent child processes that 
 they create, to inherit the local system privileges of the Windows 
 Installer service.


  


--
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit for your
organization - today and in the future.
http://p.sf.net/sfu/internap-sfd2d
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users




--
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit for your
organization - today and in the future.
http://p.sf.net/sfu/internap-sfd2d
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
Colocation vs. Managed Hosting
A question and answer guide to determining the best fit
for your organization - today and in the future.
http://p.sf.net/sfu/internap-sfd2d
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Problem with RemoveExistingProducts action

2011-02-25 Thread James Johnston
I would actually consider that desirable behavior in my product, since
version 2.1 was designed and tested with bbb.dll version 1.0 - not version
1.5.  What's happening is the removal of product 2.0 causes the reference
count on component bbb.dll to go to zero, and so MSI deletes the file.  Then
the new version installs a fresh copy of bbb.dll version 1.0.

If you want to retain the behavior you describe, then you would need to test
product version 2.1 with both bbb.dll versions 1.5 and 1.0.  Version 1.5
would occur when the user upgrades and version 1.0 would occur on a clean
install of product 2.1.  If at all possible, I like to just to put the DLLs
alongside your application in the application directory, and not put them in
a shared place like the Windows System32 directory - this is easier since
you only have to test one configuration instead of two.  This tends to be a
recommended way of doing things to avoid DLL Hell.

That said, sometimes 3rd-party components have prescribed ways of
installation and there's nothing you can do about it.  And maybe there are
some reasons for keeping the bbb.dll file around.  For example, you might
have bbb.dll as a 3rd-party component in the SYSTEM32 directory.  In that
case I would set the Permanent and SharedDllRefCount attributes both to
yes.  Permanent will add an extra reference to the component during
installation, so that it doesn't get deleted on uninstall (or therefore an
upgrade).  SharedDllRefCount deals with maintaining a similar, older-style
reference counting scheme for non-Windows Installer installers so that some
other non-MSI installer doesn't wipe your DLL from underneath you.

James 

-Original Message-
From: Igor Lemsky [mailto:igor.lem...@gmail.com] 
Sent: Friday, February 25, 2011 04:57
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Problem with RemoveExistingProducts action

It seems that I dont break component rules... I just add new component into
existing feature and trying to upgrade.
Besides I put it after InstallInitialize, but now take another problem. If
some of dlls will have lower version - it deleted during upgrade.
If product version 2.0 have bbb.dll version 1.5, and product version 2.1
have dll version 1.0 - it just erase it during upgrade!
As I understand it must leave bbb.dll version 1.5...


On Tue, Feb 22, 2011 at 9:13 PM, James Johnston
johnst...@inn-soft.comwrote:

 In that case you have to be following component rules.  See 
 http://www.joyofsetup.com/2008/12/30/paying-for-upgrades/  Also with 
 your placement, if the old version fails to uninstall then the user 
 will have both old  new versions installed - something to keep in mind.

 Try putting it after InstallInitialize.  The old version will be 
 uninstalled first before anything new is installed.  If the install of 
 the new product fails then the rollback will restore the old version.

 If you use DIFxApp for driver installs then it needs to be put between 
 InstallValidate and InstallInitialize due to a bug in DIFxApp.  In 
 that case a failed install of the new product but after the successful 
 uninstall of the old product will leave the computer with no product 
 installed at all.
  I
 think that must be a good place to put it if there are buggy custom 
 actions and component rules aren't being well-followed.

 James

 -Original Message-
 From: Igor Lemsky [mailto:igor.lem...@gmail.com]
 Sent: Tuesday, February 22, 2011 06:04
 To: General discussion for Windows Installer XML toolset.
 Subject: [WiX-users] Problem with RemoveExistingProducts action

 I have upgrade scenario for my system from 2.0 version to 2.1 version. 
 I have file for example aaa.xml in 2.1 version and no such file in 2.0 
 version. It lies in independent component i feature Afeature (it was 
 in 2.0 also). During install there are no problems: file installs to 
 the right location. But during upgrade from 2.0 version it copies and then
deleted.
 It seems that RemoveExistingProducts deletes it during uninstall of 
 older
 2.0 product. It planned after InstallFinalize action (the most right 
 place as I understand).
 Due to the log Installer unpublish features and the delete files...
 MSI (s) (DC:B8) [11:54:05:148]: Executing op:

 FileRemove(,FileName=aaa.xml,,ComponentId={369A88EA-F2DD-4124-9560-13E
 5694E2
 EEB})
 RemoveFiles: File: aaa.xml, folder: C:\Mag\

 I dont understand - what happened? Why it deletes files? May be I 
 didnt configured installer correctly? But how?

 --
 --
 --
 Index, Search  Analyze Logs and other IT data in Real-Time with 
 Splunk Collect, index and harness all the fast moving IT data 
 generated by your applications, servers and devices whether physical, 
 virtual or in the cloud.
 Deliver compliance at lower cost and gain new business insights.
 Free Software Download: http://p.sf.net/sfu/splunk-dev2dev

Re: [WiX-users] Problem with RemoveExistingProducts action

2011-02-22 Thread James Johnston
In that case you have to be following component rules.  See
http://www.joyofsetup.com/2008/12/30/paying-for-upgrades/  Also with your
placement, if the old version fails to uninstall then the user will have
both old  new versions installed - something to keep in mind.

Try putting it after InstallInitialize.  The old version will be uninstalled
first before anything new is installed.  If the install of the new product
fails then the rollback will restore the old version.

If you use DIFxApp for driver installs then it needs to be put between
InstallValidate and InstallInitialize due to a bug in DIFxApp.  In that case
a failed install of the new product but after the successful uninstall of
the old product will leave the computer with no product installed at all.  I
think that must be a good place to put it if there are buggy custom actions
and component rules aren't being well-followed.

James

-Original Message-
From: Igor Lemsky [mailto:igor.lem...@gmail.com] 
Sent: Tuesday, February 22, 2011 06:04
To: General discussion for Windows Installer XML toolset.
Subject: [WiX-users] Problem with RemoveExistingProducts action

I have upgrade scenario for my system from 2.0 version to 2.1 version. I
have file for example aaa.xml in 2.1 version and no such file in 2.0
version. It lies in independent component i feature Afeature (it was in 2.0
also). During install there are no problems: file installs to the right
location. But during upgrade from 2.0 version it copies and then deleted.
It seems that RemoveExistingProducts deletes it during uninstall of older
2.0 product. It planned after InstallFinalize action (the most right place
as I understand).
Due to the log Installer unpublish features and the delete files...
MSI (s) (DC:B8) [11:54:05:148]: Executing op:
FileRemove(,FileName=aaa.xml,,ComponentId={369A88EA-F2DD-4124-9560-13E5694E2
EEB})
RemoveFiles: File: aaa.xml, folder: C:\Mag\

I dont understand - what happened? Why it deletes files? May be I didnt
configured installer correctly? But how?

--
Index, Search  Analyze Logs and other IT data in Real-Time with Splunk
Collect, index and harness all the fast moving IT data generated by your
applications, servers and devices whether physical, virtual or in the cloud.
Deliver compliance at lower cost and gain new business insights. 
Free Software Download: http://p.sf.net/sfu/splunk-dev2dev
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
Index, Search  Analyze Logs and other IT data in Real-Time with Splunk 
Collect, index and harness all the fast moving IT data generated by your 
applications, servers and devices whether physical, virtual or in the cloud.
Deliver compliance at lower cost and gain new business insights. 
Free Software Download: http://p.sf.net/sfu/splunk-dev2dev
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] write to IniFile

2011-02-21 Thread James Johnston
http://msdn.microsoft.com/en-us/library/aa369282(VS.85).aspx

DirProperty
Name of a property having a value that resolves to the full path of the
folder containing the .ini file. The property can be the name of a directory
in the Directory table, a property set by the AppSearch table, or any other
property that represents a full path. If this field is left blank, the .ini
file is created in the folder having the full path specified by the
WindowsFolder property.

Unless I'm missing something obvious, shouldn't it be as simple as
specifying a value for DirProperty?  We do this from WiX in our product with
no problems so far...  don't really see why a custom action would be
needed...

-Original Message-
From: Rob Mensching [mailto:r...@robmensching.com] 
Sent: Monday, February 21, 2011 15:03
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] write to IniFile

Yep, annoying, eh? The MSI SDK documents that behavior. Want to contribute a
custom action that does better?

On Mon, Feb 21, 2011 at 1:04 AM, Michael Tissington 
michael_tissing...@ciqual.com wrote:

 I'm trying to write to an iniFile.

 How do I tell it which folder the file is in?
 Currently it seems to insist that it is in the \Windows folder.



 --
  The ultimate all-in-one performance toolkit: Intel(R) 
 Parallel Studio XE:
 Pinpoint memory and threading errors before they happen.
 Find and fix more than 250 security defects in the development cycle.
 Locate bottlenecks in serial and parallel code that limit performance.
 http://p.sf.net/sfu/intel-dev2devfeb
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users




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

--
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Dynamically set WixVariable WixUILicenseRtf

2011-02-18 Thread James Johnston
Oh wow...  Right now we just change it in our build script when calling
light:

light parameters -dWixUILicenseRtf=SupportFiles/License_${language}.rtf
more parameters

Which is also unnecessarily kludgy; that information really should be in the
localization file but at the time I didn't figure out how (that blog entry
was written after I wrote the setup project...).

Your solution is better except that it involves modifying WiX source code.
Any chance this might be added to a future version of WiX?  This common task
seems needlessly complicated.  Maybe the change would break compatibility,
but on the other hand the status quo of modifying WiX source code doesn't
seem any better to me!

Unless there is a better way that neither of us know about??

James

-Original Message-
From: Tobias S [mailto:tobias.s1...@gmail.com] 
Sent: Friday, February 18, 2011 15:08
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Dynamically set WixVariable WixUILicenseRtf

Ok, knew there exists an english speaking tutorial:
http://weblogs.sqlteam.com/mladenp/archive/2010/04/15/WiX-3-Tutorial-Custom-
EULA-License-and-MSI-localization.aspx

2011/2/18 Tobias S tobias.s1...@gmail.com:
 You have to overwrite the default WiX dialog e.g. in WixUI_InstallDir 
 with a modified LicenseAgreementDlg.wxs:

 1.) get the WiX Source code


 2.) from there add copies from
 src\ext\UIExtension\wixlib\WixUI_InstallDir.wxs + 
 LicenseAgreementDlg.wxs to your solution renamed as 
 MyLicenseAgreementDlg.wxs + MyWixUI_InstallDir.wxs


 3.) MyLicenseAgreementDlg.wxs
 change lines
 Dialog Id=LicenseAgreementDlg Width=370 Height=270
 Title=!(loc.LicenseAgreementDlg_Title)
 --
 Dialog Id=MyLicenseAgreementDlg Width=370 Height=270
 Title=!(loc.LicenseAgreementDlg_Title)



 Control Id=LicenseText Type=ScrollableText X=20 Y=60
 Width=330 Height=140 Sunken=yes TabSkip=no
   Text SourceFile=!(wix.WixUILicenseRtf=$(var.licenseRtf)) / 
 /Control

 --

 Control Id=LicenseText Type=ScrollableText X=20 Y=60
 Width=330 Height=140 Sunken=yes TabSkip=no
   Text SourceFile=!(loc.LicenseRtf) / /Control


 4.) WixUI_InstallDir.wxs
 change line
  UI Id=WixUI_InstallDir
 --
  UI Id=MyWixUI_InstallDir

 Replace all four occurences of LicenseAgreementDlg with
MyLicenseAgreementDlg


 5.) Change in the main wxs the reference to the modified
MyWixUI_InstallDir
 UIRef Id=WixUI_InstallDir/
 --
 UIRef Id=MyWixUI_InstallDir/


 6.) Add for every language a localization file with at least the
 following content:
 ?xml version=1.0 encoding=utf-8?
 WixLocalization Culture=en-US
 xmlns=http://schemas.microsoft.com/wix/2006/localization;
  String Id=Language1033/String
  String Id=LicenseRtfLanguages\EnglishLicenseAgreement.rtf/String
 /WixLocalization


 Here LicenseRtf is the location of the localized License Agreement


 Regards
 Tobias


 2011/2/18 Michael Tissington michael_tissing...@ciqual.com:
 How can I dynamically set the value of WixUILicenseRtf?

 I have tried WixVariable Id=WixUILicenseRtf Value=[PROPERTY_NAME]/

 What I'm trying to do is for each localization to use a different
license.rtf.




--
 The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
 Pinpoint memory and threading errors before they happen.
 Find and fix more than 250 security defects in the development cycle.
 Locate bottlenecks in serial and parallel code that limit performance.
 http://p.sf.net/sfu/intel-dev2devfeb
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users




--
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Encrypt and store the SQL sa password in the windows registry

2011-02-16 Thread James Johnston
Isn't storing the administrator password for a server in the registry a
terrible idea?  This is setting off all kinds of alarm bells in my mind...
Even if you encrypt it, I would think it would still be easy enough to
recover the plaintext just by finding the key in the MSI file and then
decrypting.  I don't see how it offers any real security beyond shielding
from casual prying eyes.  I would think an installer that does this without
telling could easily trap the unwary system administrator who wants to run a
tight ship...

-Original Message-
From: Rob Mensching [mailto:r...@robmensching.com] 
Sent: Wednesday, February 16, 2011 15:35
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Encrypt and store the SQL sa password in the
windows registry

Not today but it would be a great custom action to have.

On Tue, Feb 15, 2011 at 2:40 PM, Thai-Hoa Nguyen
taiwa...@hotmail.comwrote:



 Hello

 I'm currently storing the SQL sa password so the database can be 
 uninstalled later.

 RegistryValue Root='HKLM' Key='SOFTWARE\xyz\abcName='SQLPwd'
 Value='[SQLPASSWORD]' Type='string' /


 Property Id=SQLPASSWORD Value=password RegistrySearch 
 Id='SqlPwdReg' Key='SOFTWARE\xyz\abc' Name='SQLPwd'
 Root='HKLM' Type='raw'/
 /Property

 Is there a quick and easy way to encrypt and decypt the password in Wix?

 Thank you.

 --
  The ultimate all-in-one performance toolkit: Intel(R) 
 Parallel Studio XE:
 Pinpoint memory and threading errors before they happen.
 Find and fix more than 250 security defects in the development cycle.
 Locate bottlenecks in serial and parallel code that limit performance.
 http://p.sf.net/sfu/intel-dev2devfeb
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users




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

--
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Encrypt and store the SQL sa password in the windows registry

2011-02-16 Thread James Johnston
I think that would depend on whether the SQL Server is located on the same 
physical computer as the software in question that wants to store an account 
password.  If it's the same computer then you are correct - in fact that 
thought had already crossed my mind.  The one remaining issue I can think of is 
that the user's password is still compromised in a way that it wouldn't be 
otherwise.  Windows and I'm sure SQL Server uses one-way hash functions so 
that, even if the password file is stolen, significant effort must be 
expended to determine what the passwords are if the quality of the passwords is 
good.  If the administrator is using the same password for everything then 
there could be a problem: it might allow an attacker to further infiltrate the 
network.  If the password was only used for that one account then it's a 
non-issue.

I think that the save password concept really gets scary if the SQL Server is 
located on a different computer.  For example, suppose the app uses the sa 
password to create the database on a remote server.  But for security reasons 
the app should not use the sa account for day-to-day use, and so the sa 
password is never used again except for uninstall and is saved in the registry 
somehow as has been discussed.  In that case, if the client computer is 
compromised, this saved password registry key.  I.e. the attacker pulls the 
hard drive from the client computer, reads the key associated with the SYSTEM 
context somehow, and then decrypts the password.  Now he's gained access to the 
server that he did not previously have. 

-Original Message-
From: Castro, Edwin G. (Hillsboro) [mailto:edwin.cas...@fiserv.com] 
Sent: Wednesday, February 16, 2011 18:33
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Encrypt and store the SQL sa password in the windows 
registry

That all depends on what key you use to encrypt the data. If the key is 
associated with the SYSTEM context then only the SYSTEM context will be able to 
decrypt the data. If an attacker already has access to the SYSTEM context then 
it's already Game Over.

Edwin G. Castro
Software Developer - Staff
Electronic Banking Services
Fiserv
Office: 503-746-0643
Fax: 503-617-0291
www.fiserv.com
P Please consider the environment before printing this e-mail

 -Original Message-
 From: James Johnston [mailto:johnst...@inn-soft.com]
 Sent: Wednesday, February 16, 2011 8:19 AM
 To: 'General discussion for Windows Installer XML toolset.'
 Subject: Re: [WiX-users] Encrypt and store the SQL sa password in the 
 windows registry
 
 Isn't storing the administrator password for a server in the registry 
 a terrible idea?  This is setting off all kinds of alarm bells in my mind...
 Even if you encrypt it, I would think it would still be easy enough 
 to recover the plaintext just by finding the key in the MSI file and 
 then decrypting.  I don't see how it offers any real security beyond 
 shielding from casual prying eyes.  I would think an installer that 
 does this without telling could easily trap the unwary system administrator 
 who wants to run a tight ship...
 
 -Original Message-
 From: Rob Mensching [mailto:r...@robmensching.com]
 Sent: Wednesday, February 16, 2011 15:35
 To: General discussion for Windows Installer XML toolset.
 Subject: Re: [WiX-users] Encrypt and store the SQL sa password in the 
 windows registry
 
 Not today but it would be a great custom action to have.
 
 On Tue, Feb 15, 2011 at 2:40 PM, Thai-Hoa Nguyen
 taiwa...@hotmail.comwrote:
 
 
 
  Hello
 
  I'm currently storing the SQL sa password so the database can be 
  uninstalled later.
 
  RegistryValue Root='HKLM' Key='SOFTWARE\xyz\abcName='SQLPwd'
  Value='[SQLPASSWORD]' Type='string' /
 
 
  Property Id=SQLPASSWORD Value=password RegistrySearch 
  Id='SqlPwdReg' Key='SOFTWARE\xyz\abc' Name='SQLPwd'
  Root='HKLM' Type='raw'/
  /Property
 
  Is there a quick and easy way to encrypt and decypt the password in Wix?
 
  Thank you.
 
  
  --
   The ultimate all-in-one performance toolkit: Intel(R) 
  Parallel Studio XE:
  Pinpoint memory and threading errors before they happen.
  Find and fix more than 250 security defects in the development cycle.
  Locate bottlenecks in serial and parallel code that limit performance.
  http://p.sf.net/sfu/intel-dev2devfeb
  ___
  WiX-users mailing list
  WiX-users@lists.sourceforge.net
  https://lists.sourceforge.net/lists/listinfo/wix-users
 
 
 
 
 --
 virtually, Rob Mensching - http://RobMensching.com LLC
 --
 --
 --
 The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
 Pinpoint memory and threading errors before they happen.
 Find and fix more than 250 security defects in the development cycle.
 Locate bottlenecks in serial and parallel

Re: [WiX-users] DIFXAPP: ERROR: Failed to calculate strong name.

2011-02-10 Thread James Johnston
http://www.advancedinstaller.com/forums/viewtopic.php?f=2t=2820

Maybe there are some issues with the driver package itself?  i.e.
bad/missing catalog file.  Be sure that the driver files is completely
installed  that all required files are in the appropriate locations.

If the driver isn't WHQL signed then you have to set the legacy attribute on
the DIFX driver element; otherwise that could maybe be another factor?

-Original Message-
From: Jury BURA [mailto:jury.b...@visutechsystem.by] 
Sent: Wednesday, February 09, 2011 14:24
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] DIFXAPP: ERROR: Failed to calculate strong name.

Hi!

I have this error (WiX 3.6.1321):

DIFXAPP: ENTER: InstallDriverPackages()
DIFXAPP: INFO: 'CustomActionData' property 'DIFxApp Version' is '2.1'.
DIFXAPP: INFO: 'CustomActionData' property 'UI Level' is '5'.
DIFXAPP: INFO: 'CustomActionData' property 'componentId' is '{GUID}'.
DIFXAPP: INFO: 'CustomActionData' property 'componentPath' is 'C:\PATH1\'.
DIFXAPP: INFO: 'CustomActionData' property 'flags' is 0xA.
DIFXAPP: INFO: 'CustomActionData' property 'installState' is '2'.
DIFXAPP: INFO: 'CustomActionData' property 'ProductName' is
'[product_name]'.
DIFXAPP: INFO: 'CustomActionData' property 'ManufacturerName' is
'[manufacturer_name]'.
DIFXAPP: INFO: user SID of user performing the install is 'SID'.
DIFXAPP: INFO: opening
HKEY_USERS\SID\Software\Microsoft\Windows\CurrentVersion\DIFxApp\Components\
{GUID}
(User's SID: 'SID') ...
DIFXAPP: INFO: ENTER: DriverPackageInstallW
DIFXAPP: ERROR: Failed to calculate strong name. (Error code 0x52: The
directory or file cannot be created.)
DIFXAPP: INFO: Successfully removed '{GUID}' from reference list of driver
store entry ''
DIFXAPP: INFO: RETURN: DriverPackageInstallW (0x52)
DIFXAPP: ERROR: encountered while installing driver package
'C:\PATH1\driver.inf'
DIFXAPP: ERROR: InstallDriverPackages failed with error 0x52
DIFXAPP: RETURN: InstallDriverPackages() 82 (0x52)

Any ideas to fix this problem?

Thanks!


--
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] DIFXAPP: ERROR: Failed to calculate strong name.

2011-02-10 Thread James Johnston
Someone more familiar with DIFx might be able to shed some more light here.

Your WiX code looks OK to me.  If this problem is reproducible on multiple 
computers then I would blame the driver package.  You could also try installing 
the driver using DPInst and see if that works or not.

But I'm suspecting it might have to do with catalogs somehow?  There's no 
catalog file in your list... does the INF file specify an (apparently missing) 
catalog file?

Not sure if you've seen this topic, but you might want to review the topics in 
this section in MSDN for any potential gotchas:
http://msdn.microsoft.com/en-us/library/ff543645(VS.85).aspx

-Original Message-
From: Jury BURA [mailto:jury.b...@visutechsystem.by] 
Sent: Thursday, February 10, 2011 16:40
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] DIFXAPP: ERROR: Failed to calculate strong name.

Wix code for my driver:

Component Id=My_Driver Guid=GUID DiskId=2  File Id=mydrv.sys 
Name=mydrv.sys / File Id=mydrv.dll Name=mydrv.dll / File 
Id=mydrv.inf Name=mydrv.inf / difx:Driver Legacy=yes 
PlugAndPlayPrompt=no/ /Component

Driver isn't WHQL signed.
And... typical error message for missed cat file is:
DIFXAPP: ERROR: Failed to calculate strong name from 'file-path'.
This error message doesn't contain file path.

Thanks!


10.02.2011 17:39, James Johnston пишет:
 http://www.advancedinstaller.com/forums/viewtopic.php?f=2t=2820

 Maybe there are some issues with the driver package itself?  i.e.
 bad/missing catalog file.  Be sure that the driver files is completely 
 installed  that all required files are in the appropriate locations.

 If the driver isn't WHQL signed then you have to set the legacy 
 attribute on the DIFX driver element; otherwise that could maybe be another 
 factor?

 -Original Message-
 From: Jury BURA [mailto:jury.b...@visutechsystem.by]
 Sent: Wednesday, February 09, 2011 14:24
 To: wix-users@lists.sourceforge.net
 Subject: [WiX-users] DIFXAPP: ERROR: Failed to calculate strong name.

 Hi!

 I have this error (WiX 3.6.1321):

 DIFXAPP: ENTER: InstallDriverPackages()
 DIFXAPP: INFO: 'CustomActionData' property 'DIFxApp Version' is '2.1'.
 DIFXAPP: INFO: 'CustomActionData' property 'UI Level' is '5'.
 DIFXAPP: INFO: 'CustomActionData' property 'componentId' is '{GUID}'.
 DIFXAPP: INFO: 'CustomActionData' property 'componentPath' is 'C:\PATH1\'.
 DIFXAPP: INFO: 'CustomActionData' property 'flags' is 0xA.
 DIFXAPP: INFO: 'CustomActionData' property 'installState' is '2'.
 DIFXAPP: INFO: 'CustomActionData' property 'ProductName' is 
 '[product_name]'.
 DIFXAPP: INFO: 'CustomActionData' property 'ManufacturerName' is 
 '[manufacturer_name]'.
 DIFXAPP: INFO: user SID of user performing the install is 'SID'.
 DIFXAPP: INFO: opening
 HKEY_USERS\SID\Software\Microsoft\Windows\CurrentVersion\DIFxApp\Compo
 nents\
 {GUID}
 (User's SID: 'SID') ...
 DIFXAPP: INFO: ENTER: DriverPackageInstallW
 DIFXAPP: ERROR: Failed to calculate strong name. (Error code 0x52: The 
 directory or file cannot be created.)
 DIFXAPP: INFO: Successfully removed '{GUID}' from reference list of 
 driver store entry ''
 DIFXAPP: INFO: RETURN: DriverPackageInstallW (0x52)
 DIFXAPP: ERROR: encountered while installing driver package 
 'C:\PATH1\driver.inf'
 DIFXAPP: ERROR: InstallDriverPackages failed with error 0x52
 DIFXAPP: RETURN: InstallDriverPackages() 82 (0x52)

 Any ideas to fix this problem?

 Thanks!

 --
 --
 --
 The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
 Pinpoint memory and threading errors before they happen.
 Find and fix more than 250 security defects in the development cycle.
 Locate bottlenecks in serial and parallel code that limit performance.
 http://p.sf.net/sfu/intel-dev2devfeb
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users


 --
  The ultimate all-in-one performance toolkit: Intel(R) 
 Parallel Studio XE:
 Pinpoint memory and threading errors before they happen.
 Find and fix more than 250 security defects in the development cycle.
 Locate bottlenecks in serial and parallel code that limit performance.
 http://p.sf.net/sfu/intel-dev2devfeb
 ___
 WiX-users mailing list
 WiX-users@lists.sourceforge.net
 https://lists.sourceforge.net/lists/listinfo/wix-users


--
The ultimate all-in-one performance toolkit: Intel(R) Parallel Studio XE:
Pinpoint memory and threading errors before they happen.
Find and fix more than 250 security defects in the development cycle.
Locate bottlenecks in serial and parallel code that limit performance.
http://p.sf.net/sfu/intel-dev2devfeb

Re: [WiX-users] DIFXAPP: ERROR: Failed to calculate strong name.

2011-02-10 Thread James Johnston
If it's only one PC and it works fine on other computers of similar 
configuration (same version of Windows, etc.) then maybe also check some 
registry entries:

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DIFxApp
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\DIFx
HKCU\Software\Microsoft\Windows\CurrentVersion\DIFxApp

If it's a DIFX problem then it might be helpful to uninstall your software and 
then clean those areas up to remove traces of the drivers, in case there was 
some problems with corruption in DIFx.

Also maybe check into Windows settings and group policy that might be 
preventing the driver from being installed (especially since it's unsigned).

I would also recommend inspecting the SetupAPI log file.  Delete any existing 
log file, configure the system for the desired level of logging, and then run 
the installer again.  The SetupAPI log can give far more detail than DIFx as to 
why a driver install has failed.  Often the MSI log will have a message from 
DIFx saying in effect, the driver install failed with not much detail.  
SetupAPI log may be more helpful.

Info on setup API logs:
Vista/7: http://msdn.microsoft.com/en-us/library/ff550887(VS.85).aspx
Windows XP  probably 2000:
http://msdn.microsoft.com/en-us/library/ff550882(VS.85).aspx
http://www.microsoft.com/whdc/archive/setupapilog.mspx
http://www.osronline.com/ddkx/install/troubleshoot_9g87.htm

My guess is you will discover some unique configuration setting or some 
corrupted settings/files to that computer that is causing it to fail.  This has 
been my experience so far with DIFx.

-Original Message-
From: Jury BURA [mailto:jury.b...@visutechsystem.by] 
Sent: Thursday, February 10, 2011 17:42
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] DIFXAPP: ERROR: Failed to calculate strong name.

INF file doesn't  specify cat-file (only DLL and SYS).

This problem appear for only one PC configuration.
Ok, I'll try install this driver using DPInst and I'll read the topic.

Thanks a lot.

10.02.2011 18:52, James Johnston пишет:
 Someone more familiar with DIFx might be able to shed some more light here.

 Your WiX code looks OK to me.  If this problem is reproducible on multiple 
 computers then I would blame the driver package.  You could also try 
 installing the driver using DPInst and see if that works or not.

 But I'm suspecting it might have to do with catalogs somehow?  There's no 
 catalog file in your list... does the INF file specify an (apparently 
 missing) catalog file?

 Not sure if you've seen this topic, but you might want to review the topics 
 in this section in MSDN for any potential gotchas:
 http://msdn.microsoft.com/en-us/library/ff543645(VS.85).aspx

 -Original Message-
 From: Jury BURA [mailto:jury.b...@visutechsystem.by]
 Sent: Thursday, February 10, 2011 16:40
 To: General discussion for Windows Installer XML toolset.
 Subject: Re: [WiX-users] DIFXAPP: ERROR: Failed to calculate strong name.

 Wix code for my driver:

 Component Id=My_Driver Guid=GUID DiskId=2  File 
 Id=mydrv.sys Name=mydrv.sys /  File Id=mydrv.dll 
 Name=mydrv.dll /  File Id=mydrv.inf Name=mydrv.inf /  
 difx:Driver Legacy=yes PlugAndPlayPrompt=no/  /Component

 Driver isn't WHQL signed.
 And... typical error message for missed cat file is:
 DIFXAPP: ERROR: Failed to calculate strong name from 'file-path'.
 This error message doesn't contain file path.

 Thanks!


 10.02.2011 17:39, James Johnston пишет:
 http://www.advancedinstaller.com/forums/viewtopic.php?f=2t=2820

 Maybe there are some issues with the driver package itself?  i.e.
 bad/missing catalog file.  Be sure that the driver files is completely
 installed   that all required files are in the appropriate locations.

 If the driver isn't WHQL signed then you have to set the legacy 
 attribute on the DIFX driver element; otherwise that could maybe be another 
 factor?

 -Original Message-
 From: Jury BURA [mailto:jury.b...@visutechsystem.by]
 Sent: Wednesday, February 09, 2011 14:24
 To: wix-users@lists.sourceforge.net
 Subject: [WiX-users] DIFXAPP: ERROR: Failed to calculate strong name.

 Hi!

 I have this error (WiX 3.6.1321):

 DIFXAPP: ENTER: InstallDriverPackages()
 DIFXAPP: INFO: 'CustomActionData' property 'DIFxApp Version' is '2.1'.
 DIFXAPP: INFO: 'CustomActionData' property 'UI Level' is '5'.
 DIFXAPP: INFO: 'CustomActionData' property 'componentId' is '{GUID}'.
 DIFXAPP: INFO: 'CustomActionData' property 'componentPath' is 'C:\PATH1\'.
 DIFXAPP: INFO: 'CustomActionData' property 'flags' is 0xA.
 DIFXAPP: INFO: 'CustomActionData' property 'installState' is '2'.
 DIFXAPP: INFO: 'CustomActionData' property 'ProductName' is 
 '[product_name]'.
 DIFXAPP: INFO: 'CustomActionData' property 'ManufacturerName' is 
 '[manufacturer_name]'.
 DIFXAPP: INFO: user SID of user performing the install is 'SID'.
 DIFXAPP: INFO: opening
 HKEY_USERS\SID\Software\Microsoft\Windows\CurrentVersion\DIFxApp\Comp
 o
 nents\
 {GUID}
 (User's

Re: [WiX-users] DIFxApp does not properly rollback to the old driverwhen doing a major upgrade

2010-12-10 Thread James Johnston
 programs but did not have the MsiDriverPackages table so I
conclude they do something else).

Best regards,

James Johnston

-Original Message-
From: Quinton Tormanen [mailto:quint...@deltamotion.com] 
Sent: Friday, December 10, 2010 17:53
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] DIFxApp does not properly rollback to the old
driverwhen doing a major upgrade

Thanks for digging into this further. The support e-mail for DIFx Tools is
difxt...@microsoft.com. I have received responses over the years from
different people, but never any resolution to my problems. If that e-mail
address is no longer valid, then I can give you the addresses of the
specific people that replied. Please keep me posted on what you find out.

--Quinton

-Original Message-
From: James Johnston [mailto:johnst...@inn-soft.com]
Sent: Thursday, December 09, 2010 3:46 PM
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] DIFxApp does not properly rollback to the old
driverwhen doing a major upgrade

 Hi,
 
 As some of you have probably noticed, there has been some discussion 
 recently regarding problems with DIFxApp causing rollbacks.  I did
some more
 investigation and was able to reliably reproduce the issue and come up
with
 a very good idea on what is causing the problem.  All investigation
was done
 with the version of DIFxApp included with Windows DDK version
7600.16385.1;
 note that this will also reproduce with the version included with WiX
3.0 /
 3.5.  It was done on a clean Windows XP SP2 virtual machine with .NET 
 Framework 2.0; however we have observed the same problems on Windows
7.

 As far as I can tell, this is a bug in the DIFxApp DLLs and/or the WiX 
 extension for DIFxApp.  If anyone knows some good workarounds, or how
to
 report this to the proper channels and get it fixed it would be much 
 appreciated!  From what I can tell, there exist situations in any
DIFxApp
 setup program doing an upgrade where if the user cancels the setup at
a
 certain point (or there is an error in the installation of the new
product)
 then the user's system will be hosed and they would be unable to
uninstall
 the product without some involved technical support.

 If the bug can't be fixed or worked around, I don't see how DIFxApp is 
 suitable for use in a commercial product that needs to support
upgrades
 (i.e. all products).  And since DIFxApp isn't open source, I can't go
in and
 just fix the problem.  Very frustrating! 

 ...


--
Oracle to DB2 Conversion Guide: Learn learn about native support for PL/SQL,
new data types, scalar functions, improved concurrency, built-in packages,
OCI, SQL*Plus, data movement tools, best practices and more.
http://p.sf.net/sfu/oracle-sfdev2dev
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
Oracle to DB2 Conversion Guide: Learn learn about native support for PL/SQL,
new data types, scalar functions, improved concurrency, built-in packages, 
OCI, SQL*Plus, data movement tools, best practices and more.
http://p.sf.net/sfu/oracle-sfdev2dev 
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


[WiX-users] DIFxApp does not properly rollback to the old driver when doing a major upgrade

2010-12-09 Thread James Johnston
; for example the GUID of the driver
component is shown as {driver component GUID} because I removed the actual
GUID from this public e-mail list.
 * Large portions of the log file were removed; only relevant data was
included.  Line numbers are sometimes indicated as Line XYZ:.
 * If lines were removed, this is indicated by .hundreds of lines.

Best regards,

James Johnston

Log files below.

Attempts to uninstall after upgrade:

DIFXAPP: ERROR 0x2 encountered while opening persistent-info key for
component '{driver component GUID}'
DIFXAPP: UninstallDriverPackages failed with error 0x2
DIFXAPP: RETURN: UninstallDriverPackages() 2 (0x2)

Upgrade:

Line 226:  Action start 22:26:17: RemoveExistingProducts.
.hundreds of lines.
Action 22:26:22: MsiProcessDrivers. 
Action start 22:26:22: MsiProcessDrivers.
DIFXAPP: ENTER: ProcessDriverPackages()
DIFXAPP: INFO: 'Component' is 'MyDriverComponent'
DIFXAPP: INFO: Component state 0x3 - 0x2
DIFXAPP: INFO: 'ComponentId' is {driver component GUID}
DIFXAPP: INFO: 'Flags' is 10
DIFXAPP: INFO: component path is 
DIFXAPP: INFO: user SID of user performing the install is
'S-1-5-21-1644491937-2147298945-839522115-1003'.
DIFXAPP: INFO: creating
HKEY_USERS\S-1-5-21-1644491937-2147298945-839522115-1003\Software\Microsoft\
Windows\CurrentVersion\DIFxApp\Components\{driver component GUID} (User's
SID: 'S-1-5-21-1644491937-2147298945-839522115-1003') ...
Action 22:26:22: MsiUninstallDrivers. 
Action start 22:26:22: MsiUninstallDrivers.
MsiUninstallDrivers: 
Action ended 22:26:22: MsiUninstallDrivers. Return value 1.
DIFXAPP: RETURN: ProcessDriverPackages() 0 (0x0)
Line 460:  Action ended 22:26:22: MsiProcessDrivers. Return value 1.
.hundreds of lines.
Action 22:26:28: MsiUninstallDrivers. 
DIFXAPP: UninstallDriverPackages()
DIFXAPP: 'CustomActionData' property 'DIFxApp Version' is 2.1.
DIFXAPP: 'CustomActionData' property 'UI Level' is 5.
DIFXAPP: 'CustomActionData' property 'componentId' is {driver component
GUID}.
DIFXAPP: 'CustomActionData' property 'flags' is 0xA.
DIFXAPP: 'CustomActionData' property 'ProductName' is My Product.
DIFXAPP: 'CustomActionData' property 'ManufacturerName' is My Company.
DIFXAPP: INFO: user SID of user performing the install is
'S-1-5-21-1644491937-2147298945-839522115-1003'.
DIFXAPP: INFO: opening
HKEY_USERS\S-1-5-21-1644491937-2147298945-839522115-1003\Software\Microsoft\
Windows\CurrentVersion\DIFxApp\Components\{driver component GUID} (User's
SID: 'S-1-5-21-1644491937-2147298945-839522115-1003') ...
DIFXAPP: INFO:   ENTER:  DriverPackageUninstallW
DIFXAPP: INFO:   Uninstalling driver package
C:\WINDOWS\system32\DRVSTORE\productbus_some_big_guid_here\productbus.inf...
DIFXAPP: INFO:   Successfully removed 'C:\WINDOWS\INF\oem8.inf'.
DIFXAPP: INFO:   No devices found for
C:\WINDOWS\system32\DRVSTORE\productbus_some_big_guid_here\productbus.inf
uninstall.
DIFXAPP: INFO:   Driver store entry
'C:\WINDOWS\system32\DRVSTORE\productbus_some_big_guid_here\productbus.inf'
removed.
DIFXAPP: SUCCESS:Uninstall completed.
DIFXAPP: INFO:   RETURN: DriverPackageUninstallW  (0x0)
DIFXAPP: INFO: driver store
'C:\WINDOWS\system32\DRVSTORE\productbus_some_big_guid_here\productbus.inf'
uninstalled.
DIFXAPP: INFO: deleted add remove programs key for
'C:\WINDOWS\system32\DRVSTORE\productbus_some_big_guid_here\productbus.inf'.
DIFXAPP: A reboot is not needed to uninstall the driver package '{driver
component GUID}'.
2186:  DIFXAPP: RETURN: UninstallDriverPackages() 0 (0x0)
.hundreds of lines.
Action 22:26:49: MsiCleanupOnSuccess. 
Action start 22:26:49: MsiCleanupOnSuccess.
DIFXAPP: ENTER: CleanupOnSuccess()
DIFXAPP: INFO: 'Component' is 'MyDriverComponent'
DIFXAPP: INFO: 'ComponentId' is {driver component GUID}
DIFXAPP: INFO: user SID of user performing the install is
'S-1-5-21-1644491937-2147298945-839522115-1003'.
DIFXAPP: INFO: opening
HKEY_USERS\S-1-5-21-1644491937-2147298945-839522115-1003\Software\Microsoft\
Windows\CurrentVersion\DIFxApp\Components\{driver component GUID} (User's
SID: 'S-1-5-21-1644491937-2147298945-839522115-1003') ...
DIFXAPP: RETURN: CleanupOnSuccess() 0 (0x0)
8765:  Action ended 22:26:49: MsiCleanupOnSuccess. Return value 1.
.hundreds of lines.
9332:  Action ended 22:26:50: RemoveExistingProducts. Return value 1.
Action 22:26:51: MsiProcessDrivers. 
Action start 22:26:51: MsiProcessDrivers.
DIFXAPP: ENTER: ProcessDriverPackages()
DIFXAPP: INFO: 'Component' is 'MyDriverComponent'
DIFXAPP: INFO: Component state 0x2 - 0x3
DIFXAPP: INFO: 'ComponentId' is {driver component GUID}
DIFXAPP: INFO: 'Flags' is 10
DIFXAPP: INFO: component path is C:\Program Files\My
Product\Product-CDM-Bus\
DIFXAPP: INFO: user SID of user performing the install is
'S-1-5-21-1644491937-2147298945-839522115-1003'.
DIFXAPP: INFO: creating
HKEY_USERS\S-1-5-21-1644491937-2147298945-839522115-1003\Software\Microsoft\
Windows\CurrentVersion\DIFxApp\Components\{driver component GUID} (User's
SID: 'S-1-5-21-1644491937-2147298945-839522115-1003') ...
Action 22:26:52: MsiRollbackInstall

Re: [WiX-users] packaging large number of files

2010-12-06 Thread James Johnston
I was also immediately concerned with the serviceability ramifications as
outlined by Rob below.

What kind of files are being installed?  With some applications there might
not be much you can do about it.  But for other applications, you can do a
lot.  For example, the video game industry will compile the thousands of
constant, non-changing assets (textures, sounds, etc.) into a small number
of files so that the installer and the computer's file system don't have to
deal with so many files.

James

-Original Message-
From: Rob Mensching [mailto:r...@robmensching.com] 
Sent: Saturday, December 04, 2010 07:53
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] packaging large number of files

No, nothing in the Windows Installer supports that sort of scenario. Not
exactly sure what that would accomplish anyway. How would you patch or
update such files? Presumably you'd have to list them with the Windows
Installer somehow and that would get you right back where you are.

Now, it would be nice if the Windows Installer installed files faster than
it does... but that isn't something we can really fix in the WiX toolset.

On Fri, Dec 3, 2010 at 10:24 AM, Sanjay Rao
s...@noida.interrasystems.comwrote:

 Hi All,

 Our software has to install a large number(more than 50,000) of files 
 at target machine and We followed one component per file strategy(as 
 recommended by WIX and MSI). While doing major upgrades it consumes a 
 lot of time(sometimes 30 minutes) on some of the screens.

 I want to compress some folders (holding larger number of files 25000) 
 and make a single file and then include the compresses file into msi 
 installer. After installer finishes, I want to decompress this 
 compressed file.
 My questions is :
 Is there any way in WIX to decompress the file after installation 
 completes ?

 Regards,
 Sanjay Rao



--
What happens now with your Lotus Notes apps - do you make another costly 
upgrade, or settle for being marooned without product support? Time to move
off Lotus Notes and onto the cloud with Force.com, apps are easier to build,
use, and manage than apps on traditional platforms. Sign up for the Lotus 
Notes Migration Kit to learn more. http://p.sf.net/sfu/salesforce-d2d
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] cabbing for both 32-64-bit files

2010-12-06 Thread James Johnston
LOL!  Naaah... if contributors know what they're doing and commit good
patches then the quality will be good and I don't care who they work for.
No offense intended to anybody.  :)

James

-Original Message-
From: Pally Sandher [mailto:pally.sand...@iesve.com] 
Sent: Monday, December 06, 2010 12:10
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] cabbing for both 32-64-bit files

I hope he works for Microsoft Rob otherwise James might be disappointed at
the quality of Burn ;)

Palbinder Sandher
Software Deployment  IT Administrator
T: +44 (0) 141 945 8500
F: +44 (0) 141 945 8501 

http://www.iesve.com
**Design, Simulate + Innovate with the Virtual Environment** Integrated
Environmental Solutions Limited. Registered in Scotland No.
SC151456
Registered Office - Helix Building, West Of Scotland Science Park, Glasgow
G20 0SP Email Disclaimer

-Original Message-
From: Rob Mensching [mailto:r...@robmensching.com]
Sent: 04 December 2010 07:29
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] cabbing for both 32-64-bit files

Fredrik is working on Burn. Therefore, it rocks! smile/

On Fri, Dec 3, 2010 at 10:06 AM, James Johnston
johnst...@inn-soft.comwrote:

 Probably, except that there were some reasons why I decided against 
 dotNetInstaller.  In the end, given that I had only one prereq 
 (DOTNETFX 2.0), I used the VS2008 bootstrapper because it's supported 
 by Microsoft; seems to work well at what it does.  Also works with 
 MSBuild.  If I replace this with something I'm guessing it might be 
 something like Burn, since that has the backing and expertise of 
 Microsoft employees; if Burn is anything like the quality of WiX 
 itself I expect it to be top-notch.

 -Original Message-
 From: Pally Sandher [mailto:pally.sand...@iesve.com]
 Sent: Friday, December 03, 2010 16:40
 To: General discussion for Windows Installer XML toolset.
 Subject: Re: [WiX-users] cabbing for both 32-64-bit files

 Wouldn't it be simpler to have 1 executable that does all the work for

 you rather than this chain of executables ending in MSI's?

 dotnetinstaller (http://dotnetinstaller.codeplex.com/) for example 
 could simplify that whole convoluted process to 1 executable 
 containing both your MSI's  all your cab files.

 Palbinder Sandher
 Software Deployment  IT Administrator
 T: +44 (0) 141 945 8500
 F: +44 (0) 141 945 8501

 http://www.iesve.com
 **Design, Simulate + Innovate with the Virtual Environment** 
 Integrated Environmental Solutions Limited. Registered in Scotland No.
 SC151456
 Registered Office - Helix Building, West Of Scotland Science Park, 
 Glasgow G20 0SP Email Disclaimer

 -Original Message-
 From: James Johnston [mailto:johnst...@inn-soft.com]
 Sent: 03 December 2010 16:06
 To: 'General discussion for Windows Installer XML toolset.'
 Subject: Re: [WiX-users] cabbing for both 32-64-bit files

 Right; it comes in a self-extracting EXE that then launching the
 VS2008 bootstrapper.  The generated VS2008 bootstrapper EXEs have the 
 MSI name embedded in them so there are two VS2008 bootstrapper EXEs:
 one for each MSI.  I wrote a custom program in C that the
self-extracting EXE launches.
 This app determines which VS2008 bootstrapper EXE to start based on 
 the platform.  Also it moves the setup files to a different temp 
 directory to avoid trying to delete setup files that are still in use 
 (see issue where
 VS2008 bootstrapper returns immediately instead of waiting for the app

 to finish installing).

 -Original Message-
 From: Sean Farrow [mailto:sean.far...@seanfarrow.co.uk]
 Sent: Friday, December 03, 2010 05:20
 To: General discussion for Windows Installer XML toolset.
 Subject: Re: [WiX-users] cabbing for both 32-64-bit files

 Hi James:
 Thanks for this, I'm assuming you then used a bundle to deal with the 
 extraction/running the msi?
 Cheers
 Sean.
 -Original Message-
 From: James Johnston [mailto:johnst...@inn-soft.com]
 Sent: 02 December 2010 22:01
 To: 'General discussion for Windows Installer XML toolset.'
 Subject: Re: [WiX-users] cabbing for both 32-64-bit files

 I wanted a unified self-extracting EXE for both 32- and 64-bit
versions.
 What I wound up doing was this:

 1.  The build script combined with WiX conditional compilation / 
 preprocessor was used to compile to two different MSI files: one 
 32-bit and one 64-bit.  Each was compiled individually.  (For example,

 32-bit MSI has a launch condition preventing use on 64-bit Windows).
 2.  Files that are shared go into a common external cabinet file.
 Because they are shared, each variation of the build script 
 compile/link should produce the same CAB file.  I use a diff command 
 just to make sure this is the case before merging the 32-bit and 
 64-bit build output directories.
 3.  Files that are not shared go into two cabinets: one for 32-bit 
 files to go with 32-bit MSI, and one for 64-bit files to go with
64-bit MSI

Re: [WiX-users] What version of DIFxApp is in DIFxAppExtension?

2010-12-06 Thread James Johnston
(You can just open the difxapp_platform.wixlib files in 7-Zip to get to
the DLLs; I believe they are just MS cabinet files with some XML appended.
No need to look at WiX source code; just extract and rename.)

From the OP:  It would also be good if someone could verify with the
DIFxApp team that WiX should update to this version. They are quite poor at
documenting what's changed and versioning clearly, so there is some doubt in
my mind.  I am in 100% agreement with this.  I did some rooting around in
the WDK and WiX sources and came to some observations to summarize.

First, I wondered whether an update occurred from WiX 3.0 to WiX 3.5.  The
answer is no.  I compared DIFxApp DLL versions in Wix 3.0 vs. WiX 3.5
(escrow version from a couple days ago).  They have identical DIFxApp DLLs
(compared with diff).  Therefore, simply upgrading to WiX 3.5 probably won't
help anyone having problems with DIFx unless the WiX extension was having
trouble sequencing the custom actions, or some such problem like that and
was fixed in WiX 3.5 (I am not aware of a change like that, although I
didn't look).  These DIFxApp files included with WiX are dated 5/15/2009
02:27 UTC with a file version of 2.1.1.0; product version 2.1.1.  The
signing time of the digital signature was 8/27/2008 00:06 UTC.

Then I downloaded the Windows driver kit 7.1.0 a few days ago; it installed
to directory named 7600.16385.1 so I guess that is the exact version.  Under
C:\WinDDK\7600.16385.1\redist\DIFx\DIFxApp\WixLib\x86 I found some DIFxApp
DLLs.  They are not the same as the files included with WiX.  Strangely
enough, I also found a 3 KB wixlib file in that directory with only the XML.
These DLLs are dated 2/8/2010 21:59 UTC with a file version 2.1.0.0; product
version 2.1.  The signing time on the digital signature was 2/9/2010 06:00
UTC.

To summarize:

 * WiX 3.0/3.5: DIFxApp version 2.1.1 signed 8/27/2008.
 * WDK 7.1.0: DIFxApp version 2.1.0 signed 2/09/2010.

Some conclusions:

 * Apparently the DIFx team at Microsoft isn't properly versioning DIFxApp.
How do we have newer files being distributed with older version numbers?
Probably the only reliable method of versioning DIFxApp at this point is
using the digital signatures!

 * Communication between the DIFx team and the WiX team could be improved.
Why is there a wixlib file included with the WDK yet no mention is made of
an update to DIFxApp in WiX?  I searched the WiX bug tracker for DIFx; the
only thing I have seen is the ticket submitted by Quinton earlier today.  It
would be great if they could take responsibility  contribute DIFx updates
to the WiX project?  The actual MSDN pages regarding DIFxApp have
documentation on using DIFxApp with WiX; it would be only logical to assume
that they would be helping to maintain the system that they advocate in the
documentation.  Updating WiX's DIFxApp only when users have problems seems
like a poor long-term strategy.  Perhaps the best thing might be if the DIFx
wixlib files were removed completely from WiX if they aren't maintained?
The definitive place to get these wixlib files could then become the WDK.

(Side note:  it would be very useful if Microsoft could publish a changelog
for DIFxApp; I am wondering whether the new version might fix some of the
problems Quinton Tormanen and I have been having with DIFxApp...)

In the meantime, perhaps the best strategy for DIFxApp users to take might
be to link in the wixlib file from the WDK and avoid what comes bundled with
WiX?

The OP created a ticket at:
http://sourceforge.net/tracker/?func=detailaid=3130590group_id=105970atid
=642717
but since OP didn't include this link I thought I would add it to this
discussion.

James

-Original Message-
From: Quinton Tormanen [mailto:quint...@deltamotion.com] 
Sent: Monday, December 06, 2010 18:38
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] What version of DIFxApp is in DIFxAppExtension?

Sorry to subject you all to my conversation with myself as I figure out
what's what, but I thought one final(?) update on what I found out may be
useful to someone else out there:

* The latest version of the DIFx tools was included in WDK 7.1.0
  (7600.16385.1) and includes files built on 2/8/2010. The WDK
  documentation recommends that although previous WDK's included
  2.1 DIFx tools, the ones from WDK 7.1.0 should be used, which
  they are currently not.

Hopefully the DIFxAppExtension can be updated soon with the current
versions.

--Quinton

-Original Message-
From: Quinton Tormanen
Sent: Monday, December 06, 2010 10:17 AM
To: 'General discussion for Windows Installer XML toolset.'
Subject: RE: What version of DIFxApp is in DIFxAppExtension?

I think I figured it out. The files do appear to match the MultiLin versions
of the 8/26/2008 versions (shipped with WinDDK 6001.18002) (I was comparing
with the English versions).

So, what can be done about getting DIFxAppExtension to use the latest
versions of 

Re: [WiX-users] How do you fix this error? (id is too long, 72 characters max)

2010-12-06 Thread James Johnston
Windows Installer limits directory identifiers to 72 characters max; that ID
is 73 chars.

http://msdn.microsoft.com/en-us/library/aa368295(VS.85).aspx

You can see this in ORCA by running Orca, making a new MSI file and adding
the Directory table.  Then Adjust Schema and look at the data type of the
directory ID column.  So, the directory ID will need to be shortened.

James

-Original Message-
From: John Bergman [mailto:john.berg...@xpedienttechnologies.com] 
Sent: Monday, December 06, 2010 22:48
To: General discussion for Windows Installer XML toolset.
Subject: [WiX-users] How do you fix this error? (id is too long, 72
characters max)

I need some guidance as to how to fix this error... it looks like the id is
generated during the compile process... 

I am getting this error:

The DirectoryRef/@Id of attributes value,
'Application.managementserver.plugins.authentication.native.client.symbols'
is too long for an identifier, standard identifiers are 72 characters or
less.

This is what is in my wxs source (that I wrote)

Component Id='c_app.ms.Plugins.Auth.Native.Client'
Guid='C3ADAD54-1AD7-47fa-B356-146A58048F99'
  File Id='f.app.ms.pi.Auth.Native.Client'
Name='$(var.Application.ManagementServer.Plugins.Authentication.Native.Clien
t.TargetFileName)'
Source='$(var.Application.ManagementServer.Plugins.Authentication.Native.Cli
ent.TargetPath)' /
  File Id='f.app.ms.pi.Auth.Native.Client.pdb'
Name='XPedient.Application.ManagementServer.Plugins.Authentication.Native.Cl
ient.pdb'
Source='$(var.Application.ManagementServer.Plugins.Authentication.Native.Cli
ent.TargetDir)XPedient.Application.ManagementServer.Plugins.Authentication.N
ative.Client.pdb' /
/Component

It appears that this is the location of the error, it is in a generated
file.

Fragment
DirectoryRef
Id=Application.ManagementServer.Plugins.Authentication.Native.Client.Symbol
s
Component Id=cmp9B84874485F19E281EC2FD5E9346598B Guid=*
File Id=fil2DDE6B792849542497AC6B90E52F6196
Source=$(var.Application.ManagementServer.Plugins.Authentication.Native.Cli
ent.TargetDir)\XPedient.Application.ManagementServer.Plugins.Authentication.
Native.Client.pdb /
/Component
/DirectoryRef
/Fragment




--
What happens now with your Lotus Notes apps - do you make another costly
upgrade, or settle for being marooned without product support? Time to move
off Lotus Notes and onto the cloud with Force.com, apps are easier to build,
use, and manage than apps on traditional platforms. Sign up for the Lotus
Notes Migration Kit to learn more. http://p.sf.net/sfu/salesforce-d2d
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
What happens now with your Lotus Notes apps - do you make another costly 
upgrade, or settle for being marooned without product support? Time to move
off Lotus Notes and onto the cloud with Force.com, apps are easier to build,
use, and manage than apps on traditional platforms. Sign up for the Lotus 
Notes Migration Kit to learn more. http://p.sf.net/sfu/salesforce-d2d
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] cabbing for both 32-64-bit files

2010-12-03 Thread James Johnston
Right; it comes in a self-extracting EXE that then launching the VS2008
bootstrapper.  The generated VS2008 bootstrapper EXEs have the MSI name
embedded in them so there are two VS2008 bootstrapper EXEs: one for each
MSI.  I wrote a custom program in C that the self-extracting EXE launches.
This app determines which VS2008 bootstrapper EXE to start based on the
platform.  Also it moves the setup files to a different temp directory to
avoid trying to delete setup files that are still in use (see issue where
VS2008 bootstrapper returns immediately instead of waiting for the app to
finish installing).

-Original Message-
From: Sean Farrow [mailto:sean.far...@seanfarrow.co.uk] 
Sent: Friday, December 03, 2010 05:20
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] cabbing for both 32-64-bit files

Hi James:
Thanks for this, I'm assuming you then used a bundle to deal with the
extraction/running the msi?
Cheers
Sean.
-Original Message-
From: James Johnston [mailto:johnst...@inn-soft.com]
Sent: 02 December 2010 22:01
To: 'General discussion for Windows Installer XML toolset.'
Subject: Re: [WiX-users] cabbing for both 32-64-bit files

I wanted a unified self-extracting EXE for both 32- and 64-bit versions.
What I wound up doing was this:

1.  The build script combined with WiX conditional compilation /
preprocessor was used to compile to two different MSI files: one 32-bit and
one 64-bit.  Each was compiled individually.  (For example, 32-bit MSI has a
launch condition preventing use on 64-bit Windows).
2.  Files that are shared go into a common external cabinet file.  Because
they are shared, each variation of the build script compile/link should
produce the same CAB file.  I use a diff command just to make sure this is
the case before merging the 32-bit and 64-bit build output directories.
3.  Files that are not shared go into two cabinets: one for 32-bit files to
go with 32-bit MSI, and one for 64-bit files to go with 64-bit MSI.  Again,
the preprocessor is used to make this happen.

The final layout looks something like:
MyApp.cab
MyApp_x64.cab
MyApp_x86.cab
MyApp_x64.msi
MyApp_x86.msi

In my case, the application is 32-bit but I had to split the install like
this due to driver-related reasons.

-Original Message-
From: Sean Farrow [mailto:sean.far...@seanfarrow.co.uk]
Sent: Thursday, December 02, 2010 19:02
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] cabbing for both 32-64-bit files

Hi:
I'm currently building an instasllation that will eventually go on to 32 and
64 bit machines.How would people handle the fact that I have some files only
referenced by either the 32-bit/64-bit install (mainly com servers) and then
other files referenced by both. Should I use separate cab files?
Cheers
Sean.

--
Increase Visibility of Your 3D Game App  Earn a Chance To Win $500!
Tap into the largest installed PC base  get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users



--
Increase Visibility of Your 3D Game App  Earn a Chance To Win $500!
Tap into the largest installed PC base  get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
Increase Visibility of Your 3D Game App  Earn a Chance To Win $500!
Tap into the largest installed PC base  get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
Increase Visibility of Your 3D Game App  Earn a Chance To Win $500!
Tap into the largest installed PC base  get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
___
WiX-users mailing list
WiX-users@lists.sourceforge.net

Re: [WiX-users] cabbing for both 32-64-bit files

2010-12-03 Thread James Johnston
Probably, except that there were some reasons why I decided against
dotNetInstaller.  In the end, given that I had only one prereq (DOTNETFX
2.0), I used the VS2008 bootstrapper because it's supported by Microsoft;
seems to work well at what it does.  Also works with MSBuild.  If I replace
this with something I'm guessing it might be something like Burn, since that
has the backing and expertise of Microsoft employees; if Burn is anything
like the quality of WiX itself I expect it to be top-notch.

-Original Message-
From: Pally Sandher [mailto:pally.sand...@iesve.com] 
Sent: Friday, December 03, 2010 16:40
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] cabbing for both 32-64-bit files

Wouldn't it be simpler to have 1 executable that does all the work for you
rather than this chain of executables ending in MSI's?

dotnetinstaller (http://dotnetinstaller.codeplex.com/) for example could
simplify that whole convoluted process to 1 executable containing both your
MSI's  all your cab files.

Palbinder Sandher
Software Deployment  IT Administrator
T: +44 (0) 141 945 8500
F: +44 (0) 141 945 8501 

http://www.iesve.com
**Design, Simulate + Innovate with the Virtual Environment** Integrated
Environmental Solutions Limited. Registered in Scotland No.
SC151456
Registered Office - Helix Building, West Of Scotland Science Park, Glasgow
G20 0SP Email Disclaimer

-Original Message-
From: James Johnston [mailto:johnst...@inn-soft.com]
Sent: 03 December 2010 16:06
To: 'General discussion for Windows Installer XML toolset.'
Subject: Re: [WiX-users] cabbing for both 32-64-bit files

Right; it comes in a self-extracting EXE that then launching the VS2008
bootstrapper.  The generated VS2008 bootstrapper EXEs have the MSI name
embedded in them so there are two VS2008 bootstrapper EXEs: one for each
MSI.  I wrote a custom program in C that the self-extracting EXE launches.
This app determines which VS2008 bootstrapper EXE to start based on the
platform.  Also it moves the setup files to a different temp directory to
avoid trying to delete setup files that are still in use (see issue where
VS2008 bootstrapper returns immediately instead of waiting for the app to
finish installing).

-Original Message-
From: Sean Farrow [mailto:sean.far...@seanfarrow.co.uk]
Sent: Friday, December 03, 2010 05:20
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] cabbing for both 32-64-bit files

Hi James:
Thanks for this, I'm assuming you then used a bundle to deal with the
extraction/running the msi?
Cheers
Sean.
-Original Message-
From: James Johnston [mailto:johnst...@inn-soft.com]
Sent: 02 December 2010 22:01
To: 'General discussion for Windows Installer XML toolset.'
Subject: Re: [WiX-users] cabbing for both 32-64-bit files

I wanted a unified self-extracting EXE for both 32- and 64-bit versions.
What I wound up doing was this:

1.  The build script combined with WiX conditional compilation /
preprocessor was used to compile to two different MSI files: one 32-bit and
one 64-bit.  Each was compiled individually.  (For example, 32-bit MSI has a
launch condition preventing use on 64-bit Windows).
2.  Files that are shared go into a common external cabinet file.
Because they are shared, each variation of the build script compile/link
should produce the same CAB file.  I use a diff command just to make sure
this is the case before merging the 32-bit and 64-bit build output
directories.
3.  Files that are not shared go into two cabinets: one for 32-bit files to
go with 32-bit MSI, and one for 64-bit files to go with 64-bit MSI.
Again, the preprocessor is used to make this happen.

The final layout looks something like:
MyApp.cab
MyApp_x64.cab
MyApp_x86.cab
MyApp_x64.msi
MyApp_x86.msi

In my case, the application is 32-bit but I had to split the install like
this due to driver-related reasons.

-Original Message-
From: Sean Farrow [mailto:sean.far...@seanfarrow.co.uk]
Sent: Thursday, December 02, 2010 19:02
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] cabbing for both 32-64-bit files

Hi:
I'm currently building an instasllation that will eventually go on to 32 and
64 bit machines.How would people handle the fact that I have some files only
referenced by either the 32-bit/64-bit install (mainly com servers) and then
other files referenced by both. Should I use separate cab files?
Cheers
Sean.


--
Increase Visibility of Your 3D Game App  Earn a Chance To Win $500!
Tap into the largest installed PC base  get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists

Re: [WiX-users] cabbing for both 32-64-bit files

2010-12-02 Thread James Johnston
I wanted a unified self-extracting EXE for both 32- and 64-bit versions.
What I wound up doing was this:

1.  The build script combined with WiX conditional compilation /
preprocessor was used to compile to two different MSI files: one 32-bit and
one 64-bit.  Each was compiled individually.  (For example, 32-bit MSI has a
launch condition preventing use on 64-bit Windows).
2.  Files that are shared go into a common external cabinet file.  Because
they are shared, each variation of the build script compile/link should
produce the same CAB file.  I use a diff command just to make sure this is
the case before merging the 32-bit and 64-bit build output directories.
3.  Files that are not shared go into two cabinets: one for 32-bit files to
go with 32-bit MSI, and one for 64-bit files to go with 64-bit MSI.  Again,
the preprocessor is used to make this happen.

The final layout looks something like:
MyApp.cab
MyApp_x64.cab
MyApp_x86.cab
MyApp_x64.msi
MyApp_x86.msi

In my case, the application is 32-bit but I had to split the install like
this due to driver-related reasons.

-Original Message-
From: Sean Farrow [mailto:sean.far...@seanfarrow.co.uk] 
Sent: Thursday, December 02, 2010 19:02
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] cabbing for both 32-64-bit files

Hi:
I'm currently building an instasllation that will eventually go on to 32 and
64 bit machines.How would people handle the fact that I have some files only
referenced by either the 32-bit/64-bit install (mainly com servers) and then
other files referenced by both. Should I use separate cab files?
Cheers
Sean.

--
Increase Visibility of Your 3D Game App  Earn a Chance To Win $500!
Tap into the largest installed PC base  get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
Increase Visibility of Your 3D Game App  Earn a Chance To Win $500!
Tap into the largest installed PC base  get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] DIFxApp and upgrades

2010-12-01 Thread James Johnston
Perhaps you are right about the legacy=true aspect and the need to
manually scan for new hardware after an upgrade if the device was plugged
in.  At any rate, for the moment - I already added a custom action that
follows MSKB http://support.microsoft.com/kb/259697 and placed it after
MsiProcessDrivers; it seems to have fixed the problem.  If/when I get signed
FTDI drivers then I'll see if removing the CA doesn't reintroduce the
problem.  (Your costs are $200 per driver signing plus the cost of the code
signing certificate?)

Since you also experience the rollback problem and use signed drivers, I
assume it is not related to having unsigned drivers.  So it sounds to me
like there is probably some bug in DIFxApp... ick.  (Wishing DIFx was open
source right now!)

I certainly feel your pain regarding bugs with FTDI.  Before the 2.04.06
driver - released 3/13/2008 - the FTDI driver would randomly lock up the
computer on multiprocessor systems.  Not like dual-core/hyper-threaded
systems didn't exist for years before then, let alone dual-processor systems
which are even older (but probably less common for FTDI's market)...  The
really fun thing is that last I checked they still hadn't updated Windows
Update with that driver (when using default VID/PID), so the unsuspecting
user who just lets Windows find the appropriate driver automatically for
their generic USB-to-serial dongle will end up with a system that randomly
freezes.  I guess they are too busy making high-speed USB versions of their
devices!  But, I haven't really seen any comparable products that are
carried by distributors like Digikey.  It seems like FTDI is one of the most
common choices for low-volume USB.

I did just check and Microchip seems to be getting into this market with the
MCP2200 that came out earlier this year.  It's less expensive than FT232R
but it needs an external crystal.  What's more fun is that nothing is WHQL
signed; in fact the driver consists of a single INF file that uses the
Microsoft usbser.sys.  It's not WHQL signed.  It sounds like it's a
composite device that is a CDC for the COM port provided via usbser.sys, and
an HID device for everything else.  Probably the HID is used for configuring
EEPROM, GPIO port, things like that; a provided DLL file interfaces with it
for doing those chip-specific tasks but it does not work with the UART.  I
don't see anything close to what FTDI has: no similar replacement for the
D2XX API (which allows customizing some of the USB parameters) and no
Microchip-provided SYS file for a driver.  My recollection is that the
Microsoft driver is buggy, too. 

James 

-Original Message-
From: Quinton Tormanen [mailto:quint...@deltamotion.com] 
Sent: Tuesday, November 30, 2010 21:25
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] DIFxApp and upgrades

We use the FT245BM. We use our own PID and have a resold driver, but we kept
the filenames the same since they didn't support it. We have certified the
resold driver updated for our VID/PID.

I would not be surprised if what you're seeing (issue #2) is related to the
driver not being signed. I have generally just done the driver reseller
thing followed by a DUA submission just to get a driver that is fully
qualified and installs normally, then I do my testing on the driver and then
choose to either use or not use it. Each of the reseller and DUA steps cost
$100 each and only takes a few hours, and it seemed worth the cost of not
fussing quasi-signed drivers.

In terms of the Driver attributes:
(1) AddRemovePrograms=no - I turned this off to keep it simple for the
user. Didn't consider the Safe Mode. Also, I think the problems with the
Driver store getting corrupted like you describe and goofing up
update/uninstall of our app may have contributed to trying to only have one
path for removal (uninstall the app).
(2) ForceInstall=yes - I don't recall if there was a specific problem this
worked around. I wanted my app to determine the drivers that are used with
our VID/PID and therefore thought this would give us a better chance of
that. May have been related to paranoia about product updates failing.
(3) Legacy=no - since I have signed drivers, I didn't need to allow legacy
drivers. Things weren't pretty when the drivers weren't signed, but I don't
remember the specifics.

As an aside, I haven't seen a viable FTDI driver since 2.04.16. The 2.06.x
one required safe removal, and the 2.08.2 one has some serious bugs on
32-bit Win7 and perhaps Vista. I'm currently fussing with trying to get back
to the 2.04.16 driver, since we didn't catch the 2.8.2 flakies until after
release. This is what is behind
http://www.mail-archive.com/wix-users@lists.sourceforge.net/msg42650.htm
l.

--Quinton

-Original Message-
From: James Johnston [mailto:johnst...@inn-soft.com]
Sent: Tuesday, November 30, 2010 8:43 AM
To: 'General discussion for Windows Installer XML toolset.'
Subject: Re: [WiX-users] DIFxApp and upgrades

Re: [WiX-users] Saving the MSI file

2010-12-01 Thread James Johnston
I thought about this but decided against it for some of the security reasons
you outline; I did not think it appropriate for the UAC prompt to appear
immediately upon running the bootstrapper.  The UAC prompt really should not
be presented until the user clicks the Install button in the UI to
actually start the installation.  This would be after they configured all
the features, etc.  They should not have a UAC prompt when invoking the
boot-strapper.  I know a lot of apps out there don't bother and just require
the boot-strapper to elevate; I suspect a lot of them don't even have
appropriate manifest resources.  It comes across as a little sloppy to me.

Also, you are hosed if someone invokes the MSI directly without using the
bootstrapper.  In my book, the MSI needs to work properly if invoked
directly.  If other prereqs installed by the bootstrapper are needed, then I
check for them via launch conditions to prevent installing if a needed
prereq isn't found.

The real problem is that MSI was designed for installing off of a CD (Office
2000) back when copying resources like this were unthinkable due to limited
hard drive space.  I wish Microsoft would address this shortcoming; you'd
think they could add a pre-defined property or table  (i.e. declarative,
simple, easy-to-understand-and-use method) that controls caching the MSI
file.  Instead everybody does it their own way and now we have this big
mess.

The solution I used was to create a component for the MSI like this:

Component Id=MYAPPMSI Guid=guid Location=local
CopyFile Id=MYAPPMSICopy Delete=no
DestinationDirectory=SetupCache DestinationName=$(var.MSIName)
SourceName=$(var.MSIName) SourceProperty=SourceDir /
File Id=MYAPPMSIKey KeyPath=yes
Name=key$(var.MSIName) Source=SupportFiles\ZeroLength.txt /
RemoveFile Id=MYAPPMSIRemove Name=$(var.MSIName)
On=uninstall /
/Component

Basically, use a zero-length file as the key and use CopyFile/RemoveFile
elements to cache the actual MSI.  SetupCache is a subdirectory underneath
the application.  Make additional similar components for other files needing
to be cached; in my case there were external CAB files to cache as well.
(If your MSI is of significant size then this is best; see
http://blogs.msdn.com/b/heaths/archive/2009/02/02/changes-to-package-caching
-in-windows-installer-5-0.aspx).

For MSI to actually use this SetupCache directory, add a custom action.  I
used a deferred action placed after PublishProduct.  This action calls
MsiSourceListAddSource to add the setup cache as a source.  Condition for
the action is that $MYAPPMSI = 3 to avoid running on uninstall.

This has seemed to work reasonably well, although there must be a case
somehow where the MSI files themselves are left behind.  I haven't figured
out why yet, but usually the RemoveFile deletes them as expected.  Hasn't
been high priority to isolate the reason why and fix it.

James

-Original Message-
From: Christopher Painter [mailto:chr...@deploymentengineering.com] 
Sent: Tuesday, November 30, 2010 22:37
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Saving the MSI file

Well, that could happen no matter where you put it.  InstallShield puts it
in [LocalAppDataFolder]\Downloaded Installations by default but I'm not sure
I agree with that.   They do this ( as I recall ) so that a setup.exe
manifested as Invoker could cache the file for a standard user.  Problem
(IMO) is that if this then elevates and gets installed for all-users it
becomes a managed installation and that user who cached it could then tamper
with the MSI and do a repair to inject untrusted code into the installer. 
Remote, but possible.

The used to cache it in [WindowsFolder]Downloaded Installations but that
required Admin privs.  I think personally I've
used [CommonAppDataFolder]Downloaded Installations before.  When I need a
setup.exe I typically manifest it as requireAdmin so that each of my prereqs
don't require elevation.  I've read that this isn't the best practice but I
really don't like the alternatives.

I've also written some code that's used during major upgrades to delete the
previous versions of the MSI that way they don't pile up into something
huge. I usually just leave the final MSI behind on uninstall as the size is
typically quite small.

I'd look at WiX 3.6 and see what approaches Rob is taking with Burn. 
 
Christopher Painter, Author of Deployment Engineering Blog Have a hot tip,
know a secret or read a really good thread that deserves attention? E-Mail
Me



- Original Message 
From: Quinton Tormanen quint...@deltamotion.com
To: General discussion for Windows Installer XML toolset. 
wix-users@lists.sourceforge.net
Sent: Tue, November 30, 2010 4:10:52 PM
Subject: Re: [WiX-users] Saving the MSI file

Where do you cache it to? Everywhere else I thought of won't get cleaned up 
and/or might get erased 

Re: [WiX-users] Registry Question...

2010-12-01 Thread James Johnston
Familiarize yourself with
http://msdn.microsoft.com/en-us/library/ms724072(VS.85).aspx

If you don't want your entry to go in the 32-bit entry then you have to
specify Win64=yes on your component, but this makes / requires your MSI to
be supporting 64-bit.

32-bit apps don't need to worry about Wow6432Node; if your scripts are also
32-bit you should have nothing to worry about.

-Original Message-
From: John D. Marinuzzi [mailto:nu...@hypack.com] 
Sent: Wednesday, December 01, 2010 13:09
To: wix-users@lists.sourceforge.net
Subject: [WiX-users] Registry Question...

I am using a 64-bit Windows 7 machine.  I am installing our software with
the following script for the registry:

 

  Directory Id=INSTALLDIR Name=My Software

Component Id=InstallDir_Key
Guid=6F334E6C-DCB7-11DC-AAEA-00059A3C7800

  

  RegistryValue Id=InstallDir_Key_Value Root=HKLM
Key=SOFTWARE\My Company\My Software Name=InstallDir Action=write
Type=string Value=[INSTALLDIR] /

/Component

  /Directory

 

On the 64 bit machine the registry value is coming back as:

 

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\My Company

 

Why the Wow6432?

 

We have some NSIS scripts to install some files after the fact.  I assume it
will not be able to find the key if I use:

 

HKEY_LOCAL_MACHINE\SOFTWARE\My Company

 

For the path in the script.

 

Thanks,

 

John

 

 

 


--
Increase Visibility of Your 3D Game App  Earn a Chance To Win $500!
Tap into the largest installed PC base  get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


--
Increase Visibility of Your 3D Game App  Earn a Chance To Win $500!
Tap into the largest installed PC base  get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


Re: [WiX-users] Saving the MSI file

2010-12-01 Thread James Johnston
Eeesh, that's a ton of prereqs!  Indeed, in your case 20 UAC prompts would
be unacceptable.  I do wonder how you wound up with a 30 second timeout?
(What if installing on a slower computer and the prereq takes more time to
load?)

Our product's only chained prereq is .NET Framework 2.0, so we just use the
Visual Studio bootstrapper.  By sticking to only the NETFX 2.0 features it
allows us to jump straight into the MSI on Windows Vista/7.  Windows XP
users have only the 20-something megabyte download to contend with.  All the
other dependencies are handled via merge module (VC++2003/2005/2008, and
some 3rd-party libs as well).

I'd imagine introducing things like SQL Server Express, etc. complicates
things a good bit more.  You're right that the chaining situation is messy.
Just look at Add/Remove Programs these days if anyone says otherwise.

James

-Original Message-
From: Christopher Painter [mailto:chr...@deploymentengineering.com] 
Sent: Wednesday, December 01, 2010 20:09
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] Saving the MSI file

My typical bootstrapper installs between 10 and 20 prereqs.  I can't imagine
each of those packages prompting for elevation.  If you don't answer in 30
seconds or so it'll fail and the whole chain is broken.  I don't see how I
can't elevate up front.  I also do matching LaunchConditions in my MSI
to make sure the bootstrapper did it's thing. 


You are right about the caching only I'll take it one step farther.  The
multiple package per transaction story doesn't fit industry needs.  It
assumes that all of your packages are MSI and that's simply not the case for
me.  Heck, many/most things I download from MSFT (  .NET, C++, SQL so on )
are EXE's not MSI's.

So sure, I'd love to just click on an MSI, do my feature selection then
elevate and chain all my MSI's together but it's just not an option for me.

Chris
 
Christopher Painter, Author of Deployment Engineering Blog Have a hot tip,
know a secret or read a really good thread that deserves attention? E-Mail
Me



- Original Message 
From: James Johnston johnst...@inn-soft.com
To: General discussion for Windows Installer XML toolset. 
wix-users@lists.sourceforge.net
Sent: Wed, December 1, 2010 1:36:12 PM
Subject: Re: [WiX-users] Saving the MSI file

I thought about this but decided against it for some of the security reasons
you outline; I did not think it appropriate for the UAC prompt to appear
immediately upon running the bootstrapper.  The UAC prompt really should not
be presented until the user clicks the Install button in the UI to
actually start the installation.  This would be after they configured all
the features, etc.  They should not have a UAC prompt when invoking the
boot-strapper.  I know a lot of apps out there don't bother and just require
the boot-strapper to elevate; I suspect a lot of them don't even have
appropriate manifest resources.  It comes across as a little sloppy to me.

Also, you are hosed if someone invokes the MSI directly without using the
bootstrapper.  In my book, the MSI needs to work properly if invoked
directly.  If other prereqs installed by the bootstrapper are needed, then I
check for them via launch conditions to prevent installing if a needed
prereq isn't found.

The real problem is that MSI was designed for installing off of a CD (Office
2000) back when copying resources like this were unthinkable due to limited
hard drive space.  I wish Microsoft would address this shortcoming; you'd
think they could add a pre-defined property or table  (i.e. declarative,
simple, easy-to-understand-and-use method) that controls caching the MSI
file.  Instead everybody does it their own way and now we have this big
mess.

The solution I used was to create a component for the MSI like this:

                Component Id=MYAPPMSI Guid=guid Location=local
                    CopyFile Id=MYAPPMSICopy Delete=no
DestinationDirectory=SetupCache DestinationName=$(var.MSIName)
SourceName=$(var.MSIName) SourceProperty=SourceDir /
                    File Id=MYAPPMSIKey KeyPath=yes
Name=key$(var.MSIName) Source=SupportFiles\ZeroLength.txt /
                    RemoveFile Id=MYAPPMSIRemove Name=$(var.MSIName)
On=uninstall /
                /Component

Basically, use a zero-length file as the key and use CopyFile/RemoveFile
elements to cache the actual MSI.  SetupCache is a subdirectory underneath
the application.  Make additional similar components for other files needing
to be cached; in my case there were external CAB files to cache as well.
(If your MSI is of significant size then this is best; see
http://blogs.msdn.com/b/heaths/archive/2009/02/02/changes-to-package-caching
-in-windows-installer-5-0.aspx).

For MSI to actually use this SetupCache directory, add a custom action.  I
used a deferred action placed after PublishProduct.  This action calls
MsiSourceListAddSource to add the setup cache as a source.  Condition for
the action

Re: [WiX-users] DIFxApp and upgrades

2010-11-30 Thread James Johnston
In response to #2:  It looks like you are using the same / similar hardware
that we do.  We also use an FTDI product (FT232R).  However, there are some
differences:

(a)  We use our own product code so as not to mix the device up with normal
FTDI devices.

(b)  As a consequence, we renamed and modified the standard INF files while
following the documented FTDI procedures for doing so.  The result has not
yet been signed.

(c)  Our WiX fragment is nearly identical to yours.  The DIFxApp element is
as follows:

difxapp:Driver DeleteFiles=no ForceInstall=no
Legacy=yes PlugAndPlayPrompt=no AddRemovePrograms=yes /

The key differences between our elements seems to be ForceInstall
attribute and AddRemovePrograms attribute.  Also the use of the Legacy
attribute.  Did you find these made much of a difference?  Reading the
MsiDriverPackages table documentation, I can't imagine it would:
http://msdn.microsoft.com/en-us/library/ff549362(VS.85).aspx.

ForceInstall configures DIFxApp to force the installation of a new PnP
function driver on a device, even if the driver that is currently installed
on a device is a better match than the new driver so did not seem to be
desirable.  Also it doesn't seem like it would be applicable in this case,
since the sequence is uninstall then reinstall (i.e. when installing, no
driver is installed at all so the value of ForceInstall would be ignored?)

The one reason I have read for having AddRemovePrograms=yes is so that the
driver can be removed from Safe Mode (apparently MSI can't be invoked from
Safe Mode).  Is this still good advice?  Otherwise it just seems like
unnecessary clutter in ARP.

DeleteFiles=no is the default; I included it anyway just to be explicit.
Documentation says it's not supported any more on Windows 7...

Best regards,

James Johnston

-Original Message-
From: Quinton Tormanen [mailto:quint...@deltamotion.com] 
Sent: Monday, November 29, 2010 22:55
To: General discussion for Windows Installer XML toolset.
Subject: Re: [WiX-users] DIFxApp and upgrades

2. I do not see the second problem at all with our driver install. Any
devices that are plugged in are immediately available with the new drivers
after the install completes. In rare cases the user will be asked to restart
the PC. Are your drivers digitally signed? Here is what our WiX looks like
for the DifxAppExtension component. I did have to play around with the the
DIFxApp options (now encoded in the difxns:Driver element) back when we
first developed the driver to get the behavior I wanted.



--
Increase Visibility of Your 3D Game App  Earn a Chance To Win $500!
Tap into the largest installed PC base  get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
___
WiX-users mailing list
WiX-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/wix-users


[WiX-users] DIFxApp and upgrades

2010-11-29 Thread James Johnston
Hi,

A couple questions, both regarding DIFxApp.  (We use it to install three
drivers for three plug-and-play USB devices for a hardware product that we
ship.)

1.  Some time ago Rob Mensching mentioned the following on this list:

Yeah, there are some design issues in the DIFxApp code around Upgrades I'm
still trying to figure out what to do with DIFx since we don't have the code
to fix it here. I'll try to find someone to forward this thread to see if we
can't get some movement (not that it has worked yet).
http://www.mail-archive.com/wix-users@lists.sourceforge.net/msg35219.html

I am very interested in knowing whether anybody here knows what some of
these design issues might be?  Can DIFxApp be used when an application must
be serviced in the future?  I looked through MSDN and did not find any
mention one way or the other regarding DIFxApp and upgrades.  If upgrades
are not supported (which would seem like a serious deficiency!), what is the
recommended way of servicing an app that uses DIFxApp?  Just what, exactly,
are the caveats involved with upgrades and DIFx?

The reason I ask is that upgrades are not going as well as we would like.
Currently we service our application very simply.  Every new version is a
major upgrade: new product code, new version number.  We have always
scheduled RemoveExistingProducts immediately after InstallInitialize.  We
have tested this in-house on just about every computer at our (small)
company without any issue: the upgrades generally go very smoothly.
Additionally, most of our customers have also done upgrades without issue.

However, there have been a few customers (i.e. about 10: enough for us to
not consider it to be an isolated incident) where they were unable to
upgrade.  The setup program will roll back and fail when upgrading.  Also,
they are then unable to uninstall the software: again, the setup program
rolls back when attempting to remove the product.  The MSI logs always point
to DIFx as the problem, with DIFx indicating that key DIFx information in
the registry is missing.  Searching Google seems to indicate that we may not
be the only people experiencing this issue.  The problem has been observed
on both Windows XP SP3 and Windows 7 (few customers use Vista).  Every setup
package uses the version of DIFx included with WiX 3.0 (I believe it's
version 2.1.1).

In order to get the customer working again, we have successfully used the
following workaround in every case: (1) delete the key file as specified by
the driver component, (2) do a repair of the existing product; the absence
of the key file triggers MSI/DIFx to successfully install the driver again,
(3) we can now uninstall the old product/MSI, (4) the new product/MSI can be
installed.  Unfortunately, we have not been able to reproduce the problem
locally.  That also means that we (obviously) haven't identified what it is
about the customer computer that causes problems. 

2.  The second question is also related to upgrades.  This one is easily
reproducible.  The problem is that the connected USB device is completely
removed from Device Manager after the upgrade, and does not reappear until
the Scan for hardware changes button in Device Manager is clicked.  What
seems to happen is the following:

a.  As part of the major upgrade, the old driver is uninstalled.  At this
time, the device is completely removed from Device Manager (like if I
right-clicked it and said to uninstall it).
b.  The new driver is installed, but does not install/upgrade any driver for
the connected device because it is no longer enumerated in Device Manager.
(i.e. DIFx does not think any such device is connected  needs setup).
c.  Of course, the user proceeds to use our application, and wonders why the
hardware device is no longer found.
d.  Clicking the Scan for hardware changes button in Device Manager (or
rebooting) will enumerate the USB device and load the appropriate drivers
from DIFx.  At this point, our application will work again.

It seems like this must be an extremely common occurrence with other
plug-and-play widgets that use DIFxApp and need upgrading.  I can easily
enough add a custom action at the end of setup that calls the
CM_Reenumerate_DevNode API (see http://support.microsoft.com/kb/259697).
But given the fact that this seems like it should be a common situation: is
this the recommended way to handle this?  What is the best practice to use
in this scenario?  Does a custom action already exist for this?  Am I doing
something wrong with DIFx (i.e. do I need to change my usage of DIFx instead
of write a custom action)?

If anyone has so much as even heard of either of the issues above, I would
be grateful for some advice or pointers in the right direction.

Best regards,

James Johnston



--
Increase Visibility of Your 3D Game App  Earn a Chance To Win $500!
Tap into the largest installed PC base  get more eyes on your game

[WiX-users] DIFxApp and upgrades

2010-11-29 Thread James Johnston
Hi,

A couple questions, both regarding DIFxApp.  (We use it to install three
drivers for three plug-and-play USB devices for a hardware product that we
ship.)

1.  Some time ago Rob Mensching mentioned the following on this list:

Yeah, there are some design issues in the DIFxApp code around Upgrades I'm
still trying to figure out what to do with DIFx since we don't have the code
to fix it here. I'll try to find someone to forward this thread to see if we
can't get some movement (not that it has worked yet).
http://www.mail-archive.com/wix-users@lists.sourceforge.net/msg35219.html

I am very interested in knowing whether anybody here knows what some of
these design issues might be?  Can DIFxApp be used when an application must
be serviced in the future?  I looked through MSDN and did not find any
mention one way or the other regarding DIFxApp and upgrades.  If upgrades
are not supported (which would seem like a serious deficiency!), what is the
recommended way of servicing an app that uses DIFxApp?  Just what, exactly,
are the caveats involved with upgrades and DIFx?

The reason I ask is that upgrades are not going as well as we would like.
Currently we service our application very simply.  Every new version is a
major upgrade: new product code, new version number.  We have always
scheduled RemoveExistingProducts immediately after InstallInitialize.  We
have tested this in-house on just about every computer at our (small)
company without any issue: the upgrades generally go very smoothly.
Additionally, most of our customers have also done upgrades without issue.

However, there have been a few customers (i.e. about 10: enough for us to
not consider it to be an isolated incident) where they were unable to
upgrade.  The setup program will roll back and fail when upgrading.  Also,
they are then unable to uninstall the software: again, the setup program
rolls back when attempting to remove the product.  The MSI logs always point
to DIFx as the problem, with DIFx indicating that key DIFx information in
the registry is missing.  Searching Google seems to indicate that we may not
be the only people experiencing this issue.  The problem has been observed
on both Windows XP SP3 and Windows 7 (few customers use Vista).  Every setup
package uses the version of DIFx included with WiX 3.0 (I believe it's
version 2.1.1).

In order to get the customer working again, we have successfully used the
following workaround in every case: (1) delete the key file as specified by
the driver component, (2) do a repair of the existing product; the absence
of the key file triggers MSI/DIFx to successfully install the driver again,
(3) we can now uninstall the old product/MSI, (4) the new product/MSI can be
installed.  Unfortunately, we have not been able to reproduce the problem
locally.  That also means that we (obviously) haven't identified what it is
about the customer computer that causes problems. 

2.  The second question is also related to upgrades.  This one is easily
reproducible.  The problem is that the connected USB device is completely
removed from Device Manager after the upgrade, and does not reappear until
the Scan for hardware changes button in Device Manager is clicked.  What
seems to happen is the following:

a.  As part of the major upgrade, the old driver is uninstalled.  At this
time, the device is completely removed from Device Manager (like if I
right-clicked it and said to uninstall it).
b.  The new driver is installed, but does not install/upgrade any driver for
the connected device because it is no longer enumerated in Device Manager.
(i.e. DIFx does not think any such device is connected  needs setup).
c.  Of course, the user proceeds to use our application, and wonders why the
hardware device is no longer found.
d.  Clicking the Scan for hardware changes button in Device Manager (or
rebooting) will enumerate the USB device and load the appropriate drivers
from DIFx.  At this point, our application will work again.

It seems like this must be an extremely common occurrence with other
plug-and-play widgets that use DIFxApp and need upgrading.  I can easily
enough add a custom action at the end of setup that calls the
CM_Reenumerate_DevNode API (see http://support.microsoft.com/kb/259697).
But given the fact that this seems like it should be a common situation: is
this the recommended way to handle this?  What is the best practice to use
in this scenario?  Does a custom action already exist for this?  Am I doing
something wrong with DIFx (i.e. do I need to change my usage of DIFx instead
of write a custom action)?

If anyone has so much as even heard of either of the issues above, I would
be grateful for some advice or pointers in the right direction.

Best regards,

James Johnston


--
Increase Visibility of Your 3D Game App  Earn a Chance To Win $500!
Tap into the largest installed PC base  get more eyes on your game