- Revenera Community
- :
- InstallShield
- :
- InstallShield Knowledge Base
- :
- Set File Version to Always Overwrite using an InstallShield Automation Interface script
- Mark as New
- Mark as Read
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
Set File Version to Always Overwrite using an InstallShield Automation Interface script
Set File Version to Always Overwrite using an InstallShield Automation Interface script
Summary
Set “Always Overwrite“ to all files in a project using an InstallShield Automation Interface script.
Symptoms
In a project which contains a large amount of components and files, where files are frequently added and changed, setting Always Overwrite for each file manually is problematic and time consuming.
Resolution
It is possible to use InstallShield's Automation Interface functionality to automate this process. The example below uses VBScript code to set the "Always Overwrite" setting for all files so that the check box is checked.
You can run the script using a VBS Editor or you can run the script using “wscript.exe” or "cscript.exe" in an Administrator command prompt.
Path to wscript.exe “C:\Windows\System32>wscript.exe”
'Create project object for InstallShield 2021
Set pProject = CreateObject("ISWiAuto27.ISWiProject")
'Open project
pProject.OpenProject "C:\InstallShield 2021 Projects\My Project Name-4.ism"
Set pComponent = pProject.ISWiComponents
Msgbox pComponent.Count
For Each pComponent in pProject.ISWiComponents
Set pFile = pComponent.ISWiFiles
MsgBox pFile.Count
'Set OverrideSystemVersion all file component in ISM
For Each pFile In pComponent.ISWiFiles
pFile.OverrideSystemVersion="TRUE"
'pFile.Version ="10.2.30.55"
pFile.Version = "65535.0.0.0"
pFile.OverrideSystemLanguage="1041"
pFile.OverrideSystemAttributes = "TRUE"
Next
Next
pProject.SaveProject
'Adding a Product Config and Release
pProject.AddProductConfig("Prod config").AddRelease("Release")
'Set an existing product configuration
Set productconfig = pProject.ISWiProductConfigs.Item("Prod config")
'Set and existing release
Set Release = productconfig.ISWiReleases("Release")
'Build the release
Release.Build()
'Save and close
pProject.SaveProject
pProject.CloseProject
Click here for documentation about the InstallShield Automation Interface.
Click here for documentation about Automation using a Python script.
Click here for documentation about Automation using a PowerShell script.
- Mark as Read
- Mark as New
- Permalink
- Report Inappropriate Content
thank you very much Varul.
- Mark as Read
- Mark as New
- Permalink
- Report Inappropriate Content
Now we can use the new function always overwrite to Yes from IS2021
Dim pProject, ProjectPath
'Create project object for InstallShield 2021
'Set pProject = CreateObject("ISWiAuto27.ISWiProject")
'Create project object for InstallShield 2023
Set pProject = CreateObject("ISWiAuto29.ISWiProject")
'path to Project create
ProjectPath = "C:\InstallShield 2021 Projects\Test_AlwaysOvewrite.ism"
'-1 = ISMSI Project Type, 9 = pro, 1 = msi
pProject.CreateProject ProjectPath, 1
'change the -1 to 1 for BMSI project
'Open project
pProject.OpenProject "C:\InstallShield 2021 Projects\Test_AlwaysOvewrite.ism"
Set Feature =pProject.AddFeature("TestFeature")
Set pComponent =pProject.AddComponent("TestComponent")
feature.AttachComponent(pComponent)
'Adding File to Component
Set FileOverwrite=pcomponent.AddFile("C:\Windows\Notepad.exe")
'Setting Key File
pComponent.KeyPathType = 2
pComponent.KeyPath = FileOverwrite.Name
'Overwriting File version
FileOverwrite.AlwaysOverwrite=True
Set release = pProject.AddProductConfig("Product Configuration 1").AddRelease("Release 1")
'Save the project:
pProject.SaveProject
'Build the release
release.Build()
'Save and close
pProject.SaveProject