cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

InstallShield Azure DevOps Build Extension

InstallShield Azure DevOps Build Extension

This article covers how to build the InstallShield projects in Azure DevOps pipelines by using the InstallShield Azure DevOps Build Extension.

Prerequisite

The following steps must be completed prior to performing the InstallShield build extension tasks.

To perform prerequisite steps:

  1. Add and install the InstallShield Build Extension to your Azure DevOps organization where you are going to build the InstallShield projects as part of the Azure Build Pipeline.
  2. Add InstallShield tasks to your Azure DevOps Pipeline. Once you have installed the Extension to your organization, Install InstallShield SAB and InstallShield Build tasks will be available to your Build Pipeline tasks, to configure and build the InstallShield projects stored in the repository.

InstallShield Build Extension Tasks

Task #1: Install InstallShield SAB Task

The Install InstallShield SAB task installs the InstallShield Standalone Build setup on the Microsoft hosted machine, based on the InstallShield version configured in the task, and configures the license server with the license server details provided in the task either the Cloud License Server (CLS) or the Self hosted license server (traditional).

You need to provide the InstallShield License server details in the server:port format for Self hosted license server (traditional), where:

  • server is the IP address or the fully qualified domain name on which an InstallShield License Server is running.
  • port is the InstallShield License server port configured during the License server installation.

Ensure the License server machine is configured to communicate from the Microsoft Hosted Agent, by exempting the License server ports from the firewall. The License server and vendor daemon ports need to be configured to communicate from the Microsoft Hosted Agent via Firewall.

Beginning with InstallShield 2021, configuring and checking out license rights from the Cloud License Server (CLS) is supported. The Cloud License Server (CLS) is hosted in the Revenera cloud for your organization, so there is no need to do any additional configuration in your premises for the License Server. You are required to provide the Cloud License Server (CLS) ID details that you got from Revenera for the Cloud License Server (CLS) option.

If multiple Install InstallShield SAB tasks are configured for a particular InstallShield version in the same pipeline, only the first task downloads and installs the Install InstallShield SAB and the second task checks if it is already installed or not and skips the download and install if it is already installed.

The Install InstallShield SAB task is intended to install on Microsoft Hosted Agents. If configured on Self Hosted agents, then it installs but it is more appropriate to configure the existing on-premises InstallShield machine as Self Hosted agent.

The Install InstallShield SAB task can be added to the Pipeline with one of the following editors:

1. Adding Install InstallShield SAB Task in the YAML Pipeline Editor

To install InstallShield with Self hosted license server (traditional FlexNet License Server) details:

- task: InstallShieldInstall@1
  inputs:
    ISVersion: '2021'
    LicType: 'flexnet'
    ISLicenseServerPort: '102.203.205.198:27000'
  • ISLicenseServerPort: Provide in the server:port format, where the server is the IP address or the fully qualified domain name on which an InstallShield License Server is running, and the port is the License server port configured during the License server installation. License server and Vendor daemon ports need to be configured to communicate from the Microsoft Hosted Agent via Firewall.
  • ISVersion: Specify the InstallShield version that needs to be installed on the hosted agent. For example, enter 2021 to install the InstallShield 2021 SAB setup.
  • LicType: Specify the License Server option: flexnet for the Self hosted license server (traditional FlexNet License Server) or cls for Cloud License Server.

To install InstallShield with Cloud License Server (CLS) details:

- task: InstallShieldInstall@1
  inputs:
    ISVersion: '2021'
    LicType: 'cls'
    ISLicenseCLS: 'XXXXXXXXXX'
  • ISLicenseCLS: Specify the Cloud License Server ID that you got from Revenera for the Cloud License Server hosted in the Revenera cloud.
  • ISVersion: Specify the InstallShield version that needs to be installed on the hosted agent. For example, enter 2021 to install the InstallShield 2021 SAB setup.
  • LicType: Specify the License Server option: flexnet for the Self hosted license server (traditional FlexNet License Server) or cls for Cloud License Server.

2. Adding Install InstallShield SAB Task in the Classic Pipeline Editor

Provide the InstallShield Version from the drop down, and License Server and Port in the server:port format as described in the previous section for the Self hosted license server (traditional FlexNet License Server), and the Cloud License Server (CLS) ID for the Cloud License Server (CLS) option.

To install with Cloud License Server (CLS) option:

image.png

To install with Self hosted license server (traditional FlexNet License Server) option:

image.png

Task #2: InstallShield Build Task

The InstallShield Build task can be configured to build the InstallShield projects as part of the Azure DevOps build pipeline. This task checks if the InstallShield SAB is installed on the agent, and installs the InstallShield SAB if not already installed before triggering the InstallShield project build.

Choose Hosted Agent or Private Agent depending on where your pipeline is running.

  • Hosted Agent option in the InstallShield Build Task configuration to build the InstallShield project in the Microsoft Hosted Agent.
  • Private Agent option in the InstallShield Build Task configuration to build the InstallShield project in the Self Hosted Agent.

InstallShield Build task requires following inputs for its execution:

  • InstallShield project path from the root of the repository location.
  • Command line parameters, if any.
  • Agent Location: Hosted Agent or Private Agent depending on where your pipeline is running.
  • InstallShield installed location on the Local Agent if the build configured with Self Hosted Private Agent.
  • License Server Type: Cloud License Server (CLS) or Self hosted license server (traditional).
  • Cloud License Server (CLS) ID that you got from Revenera for the Cloud License Server (CLS) option
  • License Server details in the server:port format for Self hosted license server (traditional FlexNet License Server) option, in case of Microsoft Hosted Agents.
  • InstallShield versions in case of Microsoft Hosted Agents.

Building with Microsoft Hosted Agents

To build the InstallShield project on the Microsoft Hosted Agents, you need to configure the Agent Location to Hosted Agent option, InstallShield version and the License server details in the InstallShield Build task either the Cloud License Server (CLS) or the Self hosted license server (traditional). So, during the task execution, InstallShield SAB build is downloaded, installed and configured with the license server specified.

Provide the InstallShield License server details in the server:port format for the Self hosted license server (traditional), where:

  • server is the IP address or the fully qualified domain name on which an InstallShield License Server is running.
  • port is the InstallShield License server port configured during the License server installation.

Ensure the License server machine is configured to communicate from the Microsoft Hosted Agent, by exempting the License server ports from the firewall. The License server and Vendor daemon ports need to be configured to communicate from the Microsoft Hosted Agent via Firewall.

Beginning with InstallShield 2021, configuring and checking out license rights from the Cloud License Server (CLS) is supported. The Cloud License Server (CLS) is hosted in the Revenera cloud for your organization, so there is no need to do any additional configuration in your premises for the License Server. You are required to provide the Cloud License Server (CLS) ID details that you got from Revenera for the Cloud License Server (CLS) option.

Once after configuring the InstallShield Standalone setup on the Microsoft Hosted Agent, InstallShield Build task starts building the InstallShield project and the build progress will be updated in the agent job log.

In case the Build pipeline requires to build multiple InstallShield projects, then multiple InstallShield Build tasks can be configured with the corresponding InstallShield project details. However, the download and install the InstallShield setup on the agent has been performed at the first task, after that it starts building the project directly.  

The InstallShield Build task can be added to the build Pipeline with one of the following Pipeline editors:

1. InstallShield Build Task in the YAML Pipeline to build in Microsoft Hosted Agent

- task: InstallShieldBuild@1
  inputs:
    Prjname: 'TestMSI.ism'
    Parameters: '-v'
    AgentLoc: 'HostedAgent'
    LicType: 'flexnet'
    ISLicenseServerPort: '105.211.241.103:27000'
    ISVersion: '2021'

To build InstallShield project with Cloud License Server (CLS) option, specify the LicType to cls and the Cloud License Server (CLS) ID:

    LicType: 'cls'
    ISLicenseCLS: 'XXXXXXXXXX'
  • Prjname: It is the path of the InstallShield project from the repository root.
  • Parameters: Add the detail, if any additional command line parameters need to be passed during the build. It is optional.
  • AgentLoc: Specify the type of Agent where the Azure Build is configured: the HostedAgent for Microsoft Hosted Agent and PrivateAgent for Self-Hosted Agent.
  • ISLicenseServerPort: Provide in the server:port format, where the server is server is the IP address or the fully qualified domain name on which an InstallShield License Server is running, and the port is the License server port configured during the License server installation. License server and Vendor daemon ports need to be configured to communicate from the Microsoft Hosted Agent via Firewall.
  • ISVersion: Specify the InstallShield version that is to be installed on the hosted agent. For example, enter 2020 to install the InstallShield 2020 SAB setup.

2. InstallShield Build Task in the Classic Pipeline to build in Microsoft Hosted Agent

Provide the InstallShield Project Path, Parameters (if any), Agent Location, InstallShield Version, License Server Type to Self hosted license server (traditional) and License Server and Port in the server:port format for Self hosted license server (traditional). And specify the Cloud License Server (CLS) ID for the Cloud License Server (CLS) option.

To build with Self hosted license server (traditional) option, specify the License Server and Port in the server:port format:

image.png

To build with Cloud License Server (CLS) option, specify the Cloud License Server (CLS) ID that you got from the Revenera:

image.png

Building InstallShield Project with Self Hosted Agent

To build InstallShield projects on the Self Hosted Agents, we/you need to configure the Agent Location to Private Agent option, and the absolute location where the InstallShield is installed on the agent. We/you provide the full absolute path of InstallShield installed Location on the local agent. For example:

C:\Program Files (x86)\InstallShield\2020
OR
C:\Program Files (x86)\InstallShield\2020 SAB

Ensure the local agent is preconfigured with InstallShield and the license activated for the successful builds from the Azure pipeline.

InstallShield Build task builds the InstallShield project with InstallShield installed on the local agent, and the build progress will be updated in the agent job log.

The InstallShield task can be added to the build Pipeline with one of the following editors:

1. InstallShield Build Task in the YAML Pipeline Editor to build in the Self Hosted Agent

- task: InstallShieldBuild@1
  inputs:
    Prjname: 'TestMSI.ism'
    Parameters: '-v'
    AgentLoc: 'PrivateAgent'
    SABPath: 'C:\Program Files (x86)\InstallShield\2020 SAB'
  • Prjname: It is the path of the InstallShield project from the repository root.
  • Parameters: Add the details, if any additional command line parameters need to be passed during the build. It is optional.
  • AgentLoc: Specify the type of Agent where the Azure Build is configured: HostedAgent for Microsoft Hosted Agent and PrivateAgent for Self -Hosted Agent.
  • SABPath: Provide the full absolute path of InstallShield installed Location on the local agent. For example:
    C:\Program Files (x86)\InstallShield\2020 
    or
    C:\Program Files (x86)\InstallShield\2020 SAB.

2. InstallShield Build Task in the Classic Pipeline Editor to build in the Self Hosted Agent

Provide the Project Path, Parameters (if any), Agent Location, and Path to InstallShield installed Location on the local agent.

banna_k_2-1603181376872.png

Labels (3)
Was this article helpful? Yes No
No ratings
Comments

Which versions of SAB the extension supports? We have InstallShield 2016 Professional Concurrent Perpetual License. Do we have to upgrade?

Hi @arto_huopana:

Yes, InstallShield 2016 need to upgrade in to the latest InstallShield version(InstallShield 2020 R3). DevOps Build extension is supported from InstallShield 2020 onwards.

Thanks,

Banna 

Hi

Does anyone know if this extension works on a License server containing a Professional Concurrent Perpetual License?

We have set up a License server and activated one of these licenses on it but when the extension is executed on our pipeline keeps returning the below error.

Cannot find license file. (-1,360)
ISDEV : fatal error -7159: The product license has expired or has not yet been initialized.

Thanks

Kofi

The documentation here doesn't seem to match the currently available version of the extension on the Marketplace, which doesn't understand the LicType setting or 2021 as a version (it only knows about 2020), even though the update date on this page and the extension version are the same...

 

@PSL_Developer 

Azure DevOps extension require SAB ( standalone build) feature enabled in the License server. Azure DevOps internally uses, InstallShield SAB to build the InstallShield projects. So it required SAB feature in the License server.

@ccrowtheroo 

Can you check it by reinstalling the extension once again from the Marketplace.  

@banna_k can do; will have to wait a bit until I get a release out of the way though.

Hi @ccrowtheroo ,

I think I had same issue and I had to uninstall all InstallShield extensions in Azure DevOps and re-install from the link above and I had 2021 listed in my dropdown. 

This was despite the extension itself updating recently at start of month to 1.0.48 so could be some bug in azure marketplace? 

Good luck, 

Finally got around to removing and re-installing the extension and I can confirm that it did resolve the problem.

Having had to do the uninstall-reinstall dance again, in order to get 2022 working, do we actually have any idea as to why the auto-updates of the add-on don't seem to introduce the new versions?

Hi

We have an InstallShield Professional Perpetual License. 

We have used the docker image SAB2021R2 (https://hub.docker.com/layers/flexerasoftware/installshield/sab2021r2/images/sha256-31ddd05376971bfb23409fd378769c91ac509ae8665953973e3fbf29204d69c5?context=explore) and it's working locally. 

We have tried running the docker command to generate the installer file (.exe) using the above docker image and it's not working due to some "different host" error. We also tried with a VM that supports nested virtualization to solve this error. But no hope.  

Can we use this docker image to work in the Azure DevOps build extension or following the above guide? We are also considering using an InstallShield premium edition trial with a self-hosted agent! 

 

 

Semi-related, but we are running a self-hosted build server under DevOps and our pipelines run under the same user for all agents on the server. We are seeing intermittent issues with temp locations for the build user when building multiple IS projects via the command line. at the same time.  Can IS support running like this or is the expectation it is a 1 IS build at a time?

Version history
Last update:
‎Feb 03, 2023 01:37 PM
Updated by:
Contributors