Hi David, Sure, more than happy to share! There's a simplified version online at http://stackoverflow.com/questions/319894/simplest-solution-to-replace-a-tiny-file-inside-an-msi - I can provide a copy of our "production" code if you want, but you're probably better off taking the sample and writing your own :)
Sascha On Mon, Jun 15, 2009 at 11:46 PM, David Bartmess<david.bartm...@wallst.com> wrote: > Could you share the vbscript? I'd be interested to use it if I may. > > Thanks! > > -----Original Message----- > From: Sascha Beaumont [mailto:sascha.beaum...@gmail.com] > Sent: Sunday, June 14, 2009 8:31 PM > To: chr...@deploymentengineering.com; General discussion for Windows > Installer XML toolset. > Subject: Re: [WiX-users] How to selectively NOT install file if file already > exists on system > > I've never had an issue where the customer wasn't right, if they wanted to do > something and I couldn't do it "properly" then our installation was broken. > There are plenty of times where the customer wants to do something, and it's > up to me to figure out the "right way" > to meet their requirements. > > Take for example the OP's issue regarding distributing a custom header GIF, > we have our customers wanting to do similar issues all the time and simply > use an MST to replace the source file. This way they can deploy our MSI with > their custom MST to 100's of computers and still have a solid reliable > installation. > > This means we can enforce the restriction "do not modify installed files" by > giving the customer the option to change the file *before* it gets installed. > > In order to make it easy for customers to update this single file, I've got a > simple VBScript that: > - Compresses custom file into a CAB > - Opens up the MSI > - Reads information from the Media table > - Adds a new entry into the Media table > - Updates the File table to reference the new custom config > - Generates an MST > > >From their point of view all they need to do is put a couple of files > in a directory with our script, double click and then copy the > MSI+MST+CAB to where ever they want to install. > > Setup is something that needs to be taken seriously, when you have a very > large install base a minor issue that effects a small percentage of customers > can turn out to be a really large number. This puts more effort on the > support teams, increased bug reports, or customers discounting your product > entirely because they can't even install a trial version! I guess I'm lucky > in that I've been able to convince both development and management where and > when changes need to be made. It's a slow process, but if you know your stuff > it's a pretty easy sell :) > > Sascha > > On Sat, Jun 13, 2009 at 2:27 AM, Christopher > Painter<chr...@deploymentengineering.com> wrote: >> >> Rob- >> >> I hear you, but I've been at way too many companies where if the setup >> developer tries to follow this advice he will be perceived by management and >> development as contrary or difficult. The reality is we don't have the >> power to say the customer isn't right. >> >> 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 >> >> >> --- On Fri, 6/12/09, Rob Mensching <r...@wixtoolset.org> wrote: >> >>> From: Rob Mensching <r...@wixtoolset.org> >>> Subject: Re: [WiX-users] How to selectively NOT install file if file >>> already exists on system >>> To: "General discussion for Windows Installer XML toolset." >>> <wix-users@lists.sourceforge.net> >>> Date: Friday, June 12, 2009, 11:00 AM 1. The customer is not always >>> right. >>> Its hard enough to get developers >>> to care about setup and sustainability (which is actually going to be >>> your problem here). Users don't want to even care about setup and >>> they shouldn't have to. However, I don't know how you can "delight >>> the customer" if your app is broken. <shrug/> >>> >>> 2. I don't know what to say. It's all just code. Some code is better >>> than other code. Some designs are better than other designs. If you >>> put too many road blocks between you and writing good code and >>> creating a good design then I don't see how your product will be >>> successful in the long term. >>> >>> Also, I don't think my second suggestion is that good so I'd >>> personally work toward the first one. >>> >>> Finally, I'm not trying to be contrary or difficult. I guess I >>> believe in Engineering Darwinism. You can have bad designs and bad >>> code and possibly survive for quite a while. Eventually, though, when >>> competition shows up you will be ill prepared to handle it. It is >>> very important to note that sometimes your competition is your >>> previous self. >>> >>> David Bartmess wrote: >>> > 1. I agree. But that's what the customer has convinced >>> our PM to do. I'd rather have it selected from the code to be >>> included from a non-install directory. >>> > >>> > 2. The components and component groups are being >>> created via Paraffin, so I have no control over the condition of the >>> component, unless I go in manually and run a script to set the >>> condition on the particular file. >>> > >>> > -----Original Message----- >>> > From: Rob Mensching [mailto:r...@wixtoolset.org] >>> > Sent: Thursday, June 11, 2009 8:28 PM >>> > To: General discussion for Windows Installer XML >>> toolset. >>> > Subject: Re: [WiX-users] How to selectively NOT >>> install file if file already exists on system >>> > >>> > 1. That is a very poor app design for installation. A >>> few cases that are going to just be painful to get right >>> declaratively. For example, what do you do on repair? Ick. >>> > >>> > Installation Tenet: don't let people modify the files >>> that you install. >>> > >>> > 2. Why not do a FileSearch and Condition out the >>> Component that installs the header if it finds it is already there. >>> > >>> > David Bartmess wrote: >>> > >>> >> I'm trying to create an install that can check if >>> the file being installed already exists, and not install over the top >>> of the existing file. The reason is the customers are customizing >>> their website that we install with a custom header GIF file, and >>> every time we install we have to manually copy from a backup of the >>> file over the newly installed default file. >>> >> >>> >> Is this possible? Or do I need to write a custom >>> action to copy the file somewhere else, then copy it back over the >>> newly installed file? >>> >> >>> >> Thanks! >>> >> >>> >> <Directory >>> Id="dir_WebUI_img_branding_default_logo_7" Name="logo"> >>> >> >>> >> <Component Id="comp_WebUI_93" DiskId="1" >>> KeyPath="yes" >>> >> Guid="128474CB-A2F2-4203-94CD-434DA75F9925"> >>> >> >>> >> <File Id="file_WebUI_93" Name="header.gif" >>> >> >>> Source="WebUI\img\branding\default\logo\header.gif" /> >>> >> >>> >> </Component> >>> >> >>> >> </Directory> >>> >> >>> >> >>> >> >>> >> David Bartmess >>> >> >>> >> >>> --------------------------------------------------------------------- >>> - >>> >> -------- Crystal Reports - New Free Runtime and 30 >>> Day Trial Check out >>> >> the new simplified licensing option that enables >>> unlimited >>> >> royalty-free distribution of the report engine for >>> externally facing >>> >> server and web deployment. >>> >> http://p.sf.net/sfu/businessobjects >>> >> _______________________________________________ >>> >> WiX-users mailing list >>> >> WiX-users@lists.sourceforge.net >>> >> https://lists.sourceforge.net/lists/listinfo/wix-users >>> >> >>> >> >>> > >>> > >>> --------------------------------------------------------------------- >>> --------- >>> > Crystal Reports - New Free Runtime and 30 Day Trial >>> Check out the new simplified licensing option that enables unlimited >>> royalty-free distribution of the report engine for externally facing >>> server and web deployment. >>> > http://p.sf.net/sfu/businessobjects >>> > _______________________________________________ >>> > WiX-users mailing list >>> > WiX-users@lists.sourceforge.net >>> > https://lists.sourceforge.net/lists/listinfo/wix-users >>> > >>> > >>> --------------------------------------------------------------------- >>> --------- >>> > Crystal Reports - New Free Runtime and 30 Day Trial Check out the >>> > new simplified licensing option that >>> enables unlimited >>> > royalty-free distribution of the report engine for >>> externally facing >>> > server and web deployment. >>> > http://p.sf.net/sfu/businessobjects >>> > _______________________________________________ >>> > WiX-users mailing list >>> > WiX-users@lists.sourceforge.net >>> > https://lists.sourceforge.net/lists/listinfo/wix-users >>> > >>> >>> --------------------------------------------------------------------- >>> --------- Crystal Reports - New Free Runtime and 30 Day Trial Check >>> out the new simplified licensing option that enables unlimited >>> royalty-free distribution of the report engine for externally facing >>> server and web deployment. >>> http://p.sf.net/sfu/businessobjects >>> _______________________________________________ >>> WiX-users mailing list >>> WiX-users@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/wix-users >>> >> >> >> >> >> ------------------------------------------------------------------------------ >> Crystal Reports - New Free Runtime and 30 Day Trial >> Check out the new simplified licensing option that enables unlimited >> royalty-free distribution of the report engine for externally facing >> server and web deployment. >> http://p.sf.net/sfu/businessobjects >> _______________________________________________ >> WiX-users mailing list >> WiX-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/wix-users >> > > ------------------------------------------------------------------------------ > Crystal Reports - New Free Runtime and 30 Day Trial > Check out the new simplified licensing option that enables unlimited > royalty-free distribution of the report engine for externally facing > server and web deployment. > http://p.sf.net/sfu/businessobjects > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > > ------------------------------------------------------------------------------ > Crystal Reports - New Free Runtime and 30 Day Trial > Check out the new simplified licensing option that enables unlimited > royalty-free distribution of the report engine for externally facing > server and web deployment. > http://p.sf.net/sfu/businessobjects > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users > ------------------------------------------------------------------------------ _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users