SlideShare a Scribd company logo
InstallShield Tutorial
S.C. Su
Date: 2014/05/16
Abstract
• 32bit/64bit overview
• Packaging options
• Replacing existing files
• Replacing existing registry
• Remove install data
• Demo
• Reference
32/64 bit overview
• Folder:
– System32 / SysWOW64
– Program Files / Program Files (x86)
• In InstallShield project:
– 64bit installer:
• Must mark 64 bit component YES !!!
• [System64Folder] : C:WindowsSystem32
• [SystemFolder] : C:WindowsSysWOW64
– 32bit installer:
• [SystemFolder] : C:WindowsSystem32
32/64 bit overview
• Registry:
– HKLMSoftware
– HKLMSoftwareWow6432Node
• Redirect key:
– HKEY_CLASSES_ROOT
– HKEY_CURRENT_USERSoftwareClasses
– HKEY_LOCAL_MACHINESoftware
– HKEY_USERS*SoftwareClasses
– HKEY_USERS*_Classes
32/64 bit overview
• In InstallShield project:
– 64 bit installer:
• Must mark 64 bit component YES !!!
• HKLMSoftware => HKLMSoftware
• If no mark: HKLMSoftware =>
HKLMSoftwareWow6432Node
– 32 bit installer:
• HKLMSoftware => HKLMSoftware
Packaging Options
• Upgrade(general):
– Full MSI installation:
• Advantage: when deliver to new customers, just like
the first time installation.
– Just a patch:
• It can only deliver updates to existing customers after a
full installation.
• A new customer: BYE!!!
Packaging Options
• Type of Upgrades:
Package code Product version Product code Upgrade Code
Small Update
(no version)
Change
Minor Upgrade
(1.0 .0-> 1.0.1)
Change Change
Major Upgrade
(1.0.0 -> 1.1.0)
Change Change Change
Packaging Options
• Small/Minor Upgrade:
– Can:
• Add new component to an existing feature.
• Add new component to a new feature.
• Add new sub-feature with new components.
– Cannot:
• Change MSI package name.
• Move or delete a feature.
• Move or delete component.
• Change component GUID.
• Change the Key file of a component.
Packaging Options
• Major Upgrade:
– CAN ! CAN ! CAN ! CAN ! CAN ! CAN ! CAN !
Packaging Options
• Patches:
– You have already built the projects for your earlier
and later product versions.
– It can only deliver updates to existing customers
after a full installation.
Replacing existing files
• Unnecessary file copying slows the
installation.
• Key file is already installed.
• Replace or not?
• Be careful “Shared” component setting ! ! !
Replacing existing files
• File version rules:
– Version
• Highest version wins !!
• Versioned files wins !!
– Date
• Modified date is later than the create date, not install
the file !!
– Language
Replacing existing files
• Both files have version:
• Copy-A: upgrade files.
• Copy-B: installed files.
Replacing existing files
• Neither file have version:
• Copy-A: upgrade files.
• Copy-B: installed files.
Replacing existing files
• One file has a version:
• Copy-A: upgrade files.
• Copy-B: installed files.
Replacing existing registry
• Windows installer installs the component:
– Never Overwrite setting: NO!!!!
– Key path doesn’t exist on the target system. (??)
Remove install data
• Files:
– Files and Folders view: delete the file.
– Create a record in the Remove tables.
• Registry:
– Create a record in the Remove registry table.
Demo
Reference
• MSDN:
– http://msdn.microsoft.com/en-us/library/windows/desktop/aa371221(v=vs.85).aspx
• Prevent registry keys being overwritten:
– http://forum.installsite.net/index.php?showtopic=7576
• Step by step:
– http://www.slideshare.net/flexerasoftware/install-shield-white-paper-msi-
updates-and-patches#
MORE….
• Prevent registry keys being overwritten:
• Three tables:
– AppSearch
– RegLocator
– Property
• Registry value="[your property name]"
• AppSearch: if registry exist? Replace property.
• Write registry value.

More Related Content

Similar to Install shield

yocto_scale_handout-with-notes
yocto_scale_handout-with-notesyocto_scale_handout-with-notes
yocto_scale_handout-with-notes
Steve Arnold
 
Grasp(eo) versioning system Final presentation
Grasp(eo) versioning system Final presentationGrasp(eo) versioning system Final presentation
Grasp(eo) versioning system Final presentation
Nikita Grishin
 
Git and GitFlow branching model
Git and GitFlow branching modelGit and GitFlow branching model
Git and GitFlow branching model
Pavlo Hodysh
 
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony AppsSymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
Pablo Godel
 
Provisioning Heterogenous Bare Metal with Stacki
Provisioning Heterogenous Bare Metal with StackiProvisioning Heterogenous Bare Metal with Stacki
Provisioning Heterogenous Bare Metal with Stacki
StackIQ
 
Building an iOS Build Server
Building an iOS Build ServerBuilding an iOS Build Server
Building an iOS Build Server
Attila Tamás Zimler
 
The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
 The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
Yoshitake Kobayashi
 
Deep Dive into the AOSP
Deep Dive into the AOSPDeep Dive into the AOSP
Deep Dive into the AOSP
Dr. Ketan Parmar
 
How to install windows 7
How to install windows 7How to install windows 7
How to install windows 7
elboob2025
 
6421 b Module-13
6421 b Module-136421 b Module-13
6421 b Module-13
Bibekananada Jena
 
Network Implementation and Support Lesson 12 Backups
Network Implementation and Support Lesson 12   BackupsNetwork Implementation and Support Lesson 12   Backups
Network Implementation and Support Lesson 12 Backups
Eric Vanderburg
 
BlueHat v18 || First strontium uefi rootkit unveiled
BlueHat v18 || First strontium uefi rootkit unveiledBlueHat v18 || First strontium uefi rootkit unveiled
BlueHat v18 || First strontium uefi rootkit unveiled
BlueHat Security Conference
 
Stefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto ProjectStefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto Project
linuxlab_conf
 
Gnubs-pres-foss-cdac-sem
Gnubs-pres-foss-cdac-semGnubs-pres-foss-cdac-sem
Gnubs-pres-foss-cdac-sem
Sagun Baijal
 
Gnubs pres-foss-cdac-sem
Gnubs pres-foss-cdac-semGnubs pres-foss-cdac-sem
Gnubs pres-foss-cdac-sem
Sagun Baijal
 
Technical track-afterimaging Progress Database
Technical track-afterimaging Progress DatabaseTechnical track-afterimaging Progress Database
Technical track-afterimaging Progress Database
Vinh Nguyen
 
Joe Damato
Joe DamatoJoe Damato
Joe Damato
Ontico
 
Bioconda and the Conda Package Manager
Bioconda and the Conda Package ManagerBioconda and the Conda Package Manager
Bioconda and the Conda Package Manager
EMBL Australia Bioinformatics Resource
 
Yocto Project : Custom Embedded Linux Distribution
Yocto Project : Custom Embedded Linux DistributionYocto Project : Custom Embedded Linux Distribution
Yocto Project : Custom Embedded Linux Distribution
emertxemarketing
 
scaling compiled applications - highload 2013
scaling compiled applications - highload 2013scaling compiled applications - highload 2013
scaling compiled applications - highload 2013
ice799
 

Similar to Install shield (20)

yocto_scale_handout-with-notes
yocto_scale_handout-with-notesyocto_scale_handout-with-notes
yocto_scale_handout-with-notes
 
Grasp(eo) versioning system Final presentation
Grasp(eo) versioning system Final presentationGrasp(eo) versioning system Final presentation
Grasp(eo) versioning system Final presentation
 
Git and GitFlow branching model
Git and GitFlow branching modelGit and GitFlow branching model
Git and GitFlow branching model
 
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony AppsSymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
SymfonyCon Madrid 2014 - Rock Solid Deployment of Symfony Apps
 
Provisioning Heterogenous Bare Metal with Stacki
Provisioning Heterogenous Bare Metal with StackiProvisioning Heterogenous Bare Metal with Stacki
Provisioning Heterogenous Bare Metal with Stacki
 
Building an iOS Build Server
Building an iOS Build ServerBuilding an iOS Build Server
Building an iOS Build Server
 
The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
 The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
The Latest Status of CE Workgroup Shared Embedded Linux Distribution Project
 
Deep Dive into the AOSP
Deep Dive into the AOSPDeep Dive into the AOSP
Deep Dive into the AOSP
 
How to install windows 7
How to install windows 7How to install windows 7
How to install windows 7
 
6421 b Module-13
6421 b Module-136421 b Module-13
6421 b Module-13
 
Network Implementation and Support Lesson 12 Backups
Network Implementation and Support Lesson 12   BackupsNetwork Implementation and Support Lesson 12   Backups
Network Implementation and Support Lesson 12 Backups
 
BlueHat v18 || First strontium uefi rootkit unveiled
BlueHat v18 || First strontium uefi rootkit unveiledBlueHat v18 || First strontium uefi rootkit unveiled
BlueHat v18 || First strontium uefi rootkit unveiled
 
Stefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto ProjectStefano Cordibella - An introduction to Yocto Project
Stefano Cordibella - An introduction to Yocto Project
 
Gnubs-pres-foss-cdac-sem
Gnubs-pres-foss-cdac-semGnubs-pres-foss-cdac-sem
Gnubs-pres-foss-cdac-sem
 
Gnubs pres-foss-cdac-sem
Gnubs pres-foss-cdac-semGnubs pres-foss-cdac-sem
Gnubs pres-foss-cdac-sem
 
Technical track-afterimaging Progress Database
Technical track-afterimaging Progress DatabaseTechnical track-afterimaging Progress Database
Technical track-afterimaging Progress Database
 
Joe Damato
Joe DamatoJoe Damato
Joe Damato
 
Bioconda and the Conda Package Manager
Bioconda and the Conda Package ManagerBioconda and the Conda Package Manager
Bioconda and the Conda Package Manager
 
Yocto Project : Custom Embedded Linux Distribution
Yocto Project : Custom Embedded Linux DistributionYocto Project : Custom Embedded Linux Distribution
Yocto Project : Custom Embedded Linux Distribution
 
scaling compiled applications - highload 2013
scaling compiled applications - highload 2013scaling compiled applications - highload 2013
scaling compiled applications - highload 2013
 

Recently uploaded

How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
SAP S/4 HANA sourcing and procurement to Public cloud
SAP S/4 HANA sourcing and procurement to Public cloudSAP S/4 HANA sourcing and procurement to Public cloud
SAP S/4 HANA sourcing and procurement to Public cloud
maazsz111
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
Brandon Minnick, MBA
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
ScyllaDB
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
HarisZaheer8
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Tosin Akinosho
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
alexjohnson7307
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
akankshawande
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
Tomaz Bratanic
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Tatiana Kojar
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Alpen-Adria-Universität
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
Antonios Katsarakis
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
Dinusha Kumarasiri
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
Hiike
 

Recently uploaded (20)

How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
SAP S/4 HANA sourcing and procurement to Public cloud
SAP S/4 HANA sourcing and procurement to Public cloudSAP S/4 HANA sourcing and procurement to Public cloud
SAP S/4 HANA sourcing and procurement to Public cloud
 
Choosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptxChoosing The Best AWS Service For Your Website + API.pptx
Choosing The Best AWS Service For Your Website + API.pptx
 
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyFreshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-Efficiency
 
AWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptxAWS Cloud Cost Optimization Presentation.pptx
AWS Cloud Cost Optimization Presentation.pptx
 
Monitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdfMonitoring and Managing Anomaly Detection on OpenShift.pdf
Monitoring and Managing Anomaly Detection on OpenShift.pdf
 
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
leewayhertz.com-AI in predictive maintenance Use cases technologies benefits ...
 
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development ProvidersYour One-Stop Shop for Python Success: Top 10 US Python Development Providers
Your One-Stop Shop for Python Success: Top 10 US Python Development Providers
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
GraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracyGraphRAG for Life Science to increase LLM accuracy
GraphRAG for Life Science to increase LLM accuracy
 
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
Skybuffer AI: Advanced Conversational and Generative AI Solution on SAP Busin...
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing InstancesEnergy Efficient Video Encoding for Cloud and Edge Computing Instances
Energy Efficient Video Encoding for Cloud and Edge Computing Instances
 
Dandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity serverDandelion Hashtable: beyond billion requests per second on a commodity server
Dandelion Hashtable: beyond billion requests per second on a commodity server
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
 

Install shield

  • 2. Abstract • 32bit/64bit overview • Packaging options • Replacing existing files • Replacing existing registry • Remove install data • Demo • Reference
  • 3. 32/64 bit overview • Folder: – System32 / SysWOW64 – Program Files / Program Files (x86) • In InstallShield project: – 64bit installer: • Must mark 64 bit component YES !!! • [System64Folder] : C:WindowsSystem32 • [SystemFolder] : C:WindowsSysWOW64 – 32bit installer: • [SystemFolder] : C:WindowsSystem32
  • 4. 32/64 bit overview • Registry: – HKLMSoftware – HKLMSoftwareWow6432Node • Redirect key: – HKEY_CLASSES_ROOT – HKEY_CURRENT_USERSoftwareClasses – HKEY_LOCAL_MACHINESoftware – HKEY_USERS*SoftwareClasses – HKEY_USERS*_Classes
  • 5. 32/64 bit overview • In InstallShield project: – 64 bit installer: • Must mark 64 bit component YES !!! • HKLMSoftware => HKLMSoftware • If no mark: HKLMSoftware => HKLMSoftwareWow6432Node – 32 bit installer: • HKLMSoftware => HKLMSoftware
  • 6. Packaging Options • Upgrade(general): – Full MSI installation: • Advantage: when deliver to new customers, just like the first time installation. – Just a patch: • It can only deliver updates to existing customers after a full installation. • A new customer: BYE!!!
  • 7. Packaging Options • Type of Upgrades: Package code Product version Product code Upgrade Code Small Update (no version) Change Minor Upgrade (1.0 .0-> 1.0.1) Change Change Major Upgrade (1.0.0 -> 1.1.0) Change Change Change
  • 8. Packaging Options • Small/Minor Upgrade: – Can: • Add new component to an existing feature. • Add new component to a new feature. • Add new sub-feature with new components. – Cannot: • Change MSI package name. • Move or delete a feature. • Move or delete component. • Change component GUID. • Change the Key file of a component.
  • 9. Packaging Options • Major Upgrade: – CAN ! CAN ! CAN ! CAN ! CAN ! CAN ! CAN !
  • 10. Packaging Options • Patches: – You have already built the projects for your earlier and later product versions. – It can only deliver updates to existing customers after a full installation.
  • 11. Replacing existing files • Unnecessary file copying slows the installation. • Key file is already installed. • Replace or not? • Be careful “Shared” component setting ! ! !
  • 12. Replacing existing files • File version rules: – Version • Highest version wins !! • Versioned files wins !! – Date • Modified date is later than the create date, not install the file !! – Language
  • 13. Replacing existing files • Both files have version: • Copy-A: upgrade files. • Copy-B: installed files.
  • 14. Replacing existing files • Neither file have version: • Copy-A: upgrade files. • Copy-B: installed files.
  • 15. Replacing existing files • One file has a version: • Copy-A: upgrade files. • Copy-B: installed files.
  • 16. Replacing existing registry • Windows installer installs the component: – Never Overwrite setting: NO!!!! – Key path doesn’t exist on the target system. (??)
  • 17. Remove install data • Files: – Files and Folders view: delete the file. – Create a record in the Remove tables. • Registry: – Create a record in the Remove registry table.
  • 18. Demo
  • 19. Reference • MSDN: – http://msdn.microsoft.com/en-us/library/windows/desktop/aa371221(v=vs.85).aspx • Prevent registry keys being overwritten: – http://forum.installsite.net/index.php?showtopic=7576 • Step by step: – http://www.slideshare.net/flexerasoftware/install-shield-white-paper-msi- updates-and-patches#
  • 20. MORE…. • Prevent registry keys being overwritten: • Three tables: – AppSearch – RegLocator – Property • Registry value="[your property name]" • AppSearch: if registry exist? Replace property. • Write registry value.