Hi All,
I am packaging Project Viewer(in brief, an application to open .mpp files) and my package must satisfy the following conditions:
1. If the target computer already has MS Project (another application for same purpose) installed, even after installation of my package, MS Project must still remain the default application for opening the .mpp files.
2. If not, my pack(Seavus PV) must be made the defualt.
Any ideas as how to achieve this..
Thanks in advance...
0 Comments   [ + ] Show Comments

Comments

Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.

Answers

0
Use your authoring tool's help file, this site and MSDN to research AppSearch, LaunchCondition and Conditions.

Some advice re: the first two: if you're using a Wise package authoring tool, it defaults to placing the LaunchCondition action before the AppSearch action, meaning that any property you set via AppSearch isn't actioned. One of the first things to do in a new Wise set-up is to create a new set of templ;ates with the AppSearch action moved to an earlier position in the installation sequence. Quite why Wise persists with this folly escapes me.
Answered 03/05/2008 by: VBScab
Red Belt

Please log in to comment
0
Hello,

you can do so by changing the target file path in the registries supported with .mpp extension.
Answered 03/05/2008 by: sushma.shah
Senior Yellow Belt

Please log in to comment
0
Is there any chance to find that a specific application is being installed on the target machine ??
If there is a possibility for that, i guess i can write a custom action wherein i can make a condition to set the MAKEDEFAULTAPPLICATION property to NO if MS Project is alredy installed in the machine.. So can anybody help me out in finding out a registry or somethin else to search for, to find out the existance of an application in the target machine, before i start my installation..
Answered 03/13/2008 by: rayz_0020
Senior Purple Belt

Please log in to comment
0
ORIGINAL: rayz_0020
So can anybody help me out in finding out a registry or somethin else to search for, to find out the existance of an application in the target machine, before i start my installation..
That depends entirely on the application and/or on how it was installed.

You could look for the main EXE; you could look for a guaranteed-to-be-present registry entry or you could look for the 'UninstallString' or 'ProductCode' registry key/entry if it was installed by Windows Installer.

Looking for EXEs is tricky, because not everyone installs to the default location (I, for one, detest Microsoft's habit of ignoring its own guidelines and using 'Microsoft [Product Name] - or sometimes just [Product Name]! - and instead use 'Microsoft\[Product Name]'...)

Thus, you can refine that by looking for the default file association and then follow the trail to the EXE. This is how, for example, any script I use which needs to know where MS Office is installed: I get the AppID associated with the .DOC extension - on the basis that *everyone* installs Word - then retreive the shell 'Open' command for that extension's associated AppID (Word.Document.x, where 'x' is the Office version number) e.g. HKEY_CLASSES_ROOT\Word.Document.8\shell\Edit\command\(Default), which in my current build is set to "C:\Program Files\Microsoft\Office\OFFICE11\WINWORD.EXE" /n /dde. Thus, from character position 1 (or 0 for the anally-retentive) to the last backslash is the path to MS Office. Easy.

I hope it's obvious that you'll need to do this in script. You could *probably* assume a lot of things and just retrieve a reg key (e.g. Office 11 has a registry value 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\11.0\Common\InstallRoot\Path') but a) that assumes a particular version of Office and b) may not always be present. Besides, properly written, your script could be made generic enough to seek out any application's installed path.
Answered 03/13/2008 by: VBScab
Red Belt

Please log in to comment
0
You could use the upgrade table to search for the app and set it to flag presence only then use that property as your condition.
Answered 03/13/2008 by: jmcfadyen
Fifth Degree Black Belt

Please log in to comment
0
I changed the property MAKEDEFAULTAPPLICATION to "No" on presence of MS Project by using a vb script-custom action. I can also see the property getting modified( in the log file ). but exactly at the very end of installation just before Installation ends, the property is again applied as "yes", ie., this becomes the default overriding the MS project(which shud not happen)...
in the log file i can see...
1. the property in modified (current value is Yes ; new value is No)
2. Property(s) MAKEDEFAULTAPPLICATION = no
3. Property(c) MAKEDEFAULTAPPLICATION = yes..
Any ideas for Wat is that happening at (3)...
Answered 03/19/2008 by: rayz_0020
Senior Purple Belt

Please log in to comment
0
ORIGINAL: rayz_0020
in the log file i can see...
1. the property in modified (current value is Yes ; new value is No)
2. Property(s) MAKEDEFAULTAPPLICATION = no
3. Property(c) MAKEDEFAULTAPPLICATION = yes..
Any ideas for Wat is that happening at (3)...
Near this line, there will be an entry for one or more Custom Actions. One of them is most likely responsible.
Answered 03/19/2008 by: VBScab
Red Belt

Please log in to comment
0
Hi... thanks for the replies Ian.. I just found that the problem is with the application of condition to the components.. I have two keys in HKCR.. and these keys are actually in component which has a condition which goes like this... MAKEDEFAULTPROPERTY="Yes".. Now even if the property is passed as "No"(i tried passing it explicitly thru command line also), this component is getting installed..
Can you help me in knowing why this occurs... Bcoz if this component is not getting installed based on the condition (if passed as No), the issue wud get resolved..
thanks in advance...
Answered 03/20/2008 by: rayz_0020
Senior Purple Belt

Please log in to comment
Answer this question or Comment on this question for clarity