ciao,
il progetto Setup ha una finestra chiamata "
Launch Conditions Editor" da cui puoi definire le tue condizioni. La raggiungi dal Solution Explorer, in alto, è l'ultima iconcina a destra.
In quella finestra troverai un piccolo menu ad albero in cui una delle voci è "Search target machine". Fai tasto destro lì sopra e poi "Add Registry Search" che ti consente di creare una variabile che verrà riempita dall'installer con il valore trovato nella chiave di registro desiderata.
Mettiamo che tu voglia intraprendere un'azione diversa a seconda che sia installato Office 2007 o 2010 o nessuno dei due.
Con "Add Registry Search" creati una prima variabile che attinge il valore da questo ramo del registro, che sarà presente solo se Office 2007 è installato:
HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Common\DRM
Poi fai una seconda volta "Add Registry Search" per crearti una seconda variabile che legge da un ramo diverso, quello di Office 2010:
HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\Common\DRM
Questo era solo un esempio che non posso verificare perché non ho Office installato. Comunque le chiavi le trovi elencate qui:
http://technet.microsoft.com/en-us/library/dd772637%28WS.10%29.aspxFatto questo, avrai definito le due variabili. Ora vai nell'altra finestra del progetto Setup, denominata "
Custom Actions". Da lì potrai aggiungere degli eseguibili, come ad esempio un pacchetto di installazione per un add-in per Office.
Se hai due pacchetti, uno per Office 2007 e uno per Office 2010, e vuoi che solo uno, al massimo, venga installato, allora potrai legare ciascuno di essi ad una di quelle variabili che avevi definito prima. Così verranno lanciati soltanto se la condizione è verificata.
Dopo aver aggiunto gli eseguibili alle "Custom Actions", nel loro
pannello delle proprietà troverai appunto la voce "Condition" che ti lascerà indicare la condizione necessaria affinché ciascun eseguibile sia lanciato.
ciao
Modificato da BrightSoul il 30 dicembre 2011 15.08 -