Runtime lIcense in local, with branches GIT, Pipeline license in CICD server

Posted by: enrique.pv-ext on 15 October 2026, 9:56 am EST

  • Posted 15 October 2026, 9:56 am EST - Updated 15 October 2026, 10:01 am EST

    Confusing…

    The .gclicx file is no longer required and will not be regenerated. OK

    The .sa3licx file is the run-time license file of your application. OK

    The .sa3licx file , its content does not change with each build. OK

    Developer license vs Runtime license is the same ?

    Git ignore sa3licx or sa3licx (each developer) in Git ?

    "When you run git pull or check out a branch that includes this change, Git will delete those files from your local workspace. This only happens the first time. After that, .gitignore will exclude them and Git will no longer manage them.

    You can keep the .sa3licx file in Git. It is embedded in the application as a resource. Your CI/CD pipeline will use it during the build, so having it in source control saves you from generating the license file manually on the build server each time."

    My partner gitignore the sa3licx.

    Before we decide how to handle the .sa3licx file in Git, we need to clarify one point.

    Question: Does the .sa3licx file contain data specific to the developer license that generated it? If a developer commits it and the CI server builds with it, which license ends up embedded in the DLL: the developer’s or the pipeline’s?

    For context, here are the two approaches we are comparing:

    Option A: add .sa3licx to .gitignore and generate it in the pipeline ( sa3client lc with the pipeline key)

    Pros:

    • The DLL is always built with the pipeline license, never with an individual developer’s license.

    • No merge conflicts between branches, since Visual Studio rewrites the file on each machine.

    • No license material in the repository, so nothing can expire or be revoked by accident.

    • New team members and branches work out of the box once they generate their own file locally.

    Cons:

    • The pipeline depends on sa3client being installed and on the key being available as a secret variable.

    • Local builds fail unless each developer generates the file first (or the .csproj reference is made conditional).

    • An extra step is needed in every build.

    Option B: keep .sa3licx versioned in Git

    Pros:

    • The CI does not need sa3client or an extra generation step.

    • Fewer moving parts in the pipeline.

    • A fresh clone builds locally without generating the file.

    Cons:

    • Visual Studio rewrites the file on each developer machine, which causes constant local changes and merge conflicts across branches.

    • If a developer commits their own file, the CI may embed that developer’s license in the production DLL.

    • If that license expires or is revoked, builds could show the evaluation message even though the pipeline license is valid.

    • The file is tied to the machine or license that generated it, so it is hard to guarantee which one is in the repo at any commit.

    Question: Which approach does MESCIUS recommend for a WebForms (.NET Framework) project with several developers, feature branches, and a pipeline license on the CI/CD server? Is sa3client lc the supported way to generate the file in the pipeline?

    Thank you for your help.

    pipeline CI using sa3client and generate sa3licx in CI

  • Posted 16 October 2026, 6:17 am EST - Updated 16 October 2026, 6:39 am EST

    Hello Enrique,

    → Does the .sa3licx file contain data specific to the developer license that generated it?

    Yes. The file contains the masked key of the developer license and the machine name, along with other project-related details. These are embedded at the time the file is generated.

    → If a developer commits it and the CI server builds with it, which license ends up embedded in the DLL: the developer’s or the pipeline’s?

    The developer’s. The pipeline machine does not replace the file. It checks that a valid license is available to build the project, and then uses the sa3licx file already in the project to license the build.

    → Which approach does MESCIUS recommend for a WebForms (.NET Framework) project with several developers, feature branches, and a pipeline license on the CI/CD server? Is sa3client lc the supported way to generate the file in the pipeline?

    Option B is simpler and suggested. Generating the sa3licx in the pipeline with the sa3client lc command is supported. Just keep in mind that the pipeline will need extra steps to add the generated file to the project and set its Build Action to EmbeddedResource.

    Regards,

    Uttkarsh

Need extra support?

Upgrade your support plan and get personal unlimited phone support with our customer engagement team

Learn More

Forum Channels