Excessive SA3 license compilation time in large WinForms solution

Posted by: tschmidt on 29 September 2026, 9:39 am EST

  • Posted 29 September 2026, 9:39 am EST

    Hello,

    we are using ComponentOne WinForms controls (2025.1) in a large .NET solution containing about 90 projects.

    Many projects reference ComponentOne packages such as:

    C1.Win

    C1.Win.FlexGrid

    C1.Excel

    C1.Zip

    During every build, each affected project runs the SA3 license compilation step. The output contains messages such as:

    Starting license compilation…

    Searching for a license for ‘C1S,C1P,C1SJ,C1PJ(…)’

    Compiling license: …

    Finished compiling licenses.

    In some projects this license compilation appears to run twice during a single build.

    The license compilation takes roughly 3-10 seconds per project, which results in a significant build-time overhead across the entire solution.

    Our questions:

    Is there a supported way to cache or reuse previously generated .sa3licx files so that license compilation is skipped when nothing relevant has changed?

    Is there a property that disables automatic SA3 license generation and instead uses a pre-generated license file?

    Is it expected that license compilation runs for every project that transitively references ComponentOne packages?

    Is it expected that license compilation may execute twice within a single project build?

    Are there recommended best practices for reducing SA3 licensing overhead in large multi-project solutions?

    Any guidance would be appreciated, as licensing currently represents a noticeable portion of our total build time.

    Thank you.

    1>  SA3Client[1.4.1](update)
    1>  Package ID      Latest Version      Authors        Downloads      Verified
    1>  --------------------------------------------------------------------------
    1>  sa3client       1.4.1               sa3client      74685
    1>  Product 'ComponentOne (C1S)' added.
    1>  Product 'ComponentOne (C1P)' added.
    1>  Product 'ComponentOne JA (C1SJ)' added.
    1>  Product 'ComponentOne JA (C1PJ)' added.
    1>  Starting license compilation...
    1>  Searching for a license for 'C1S,C1P(2025.1.0.0-),C1SJ,C1PJ(2025.1.0.0-)'.
    1>  Compiling license: C1P69958558********037
    1>  Compiling license: C1S43693510********033
    1>  Finished compiling licenses.
    1>  Product 'ComponentOne (C1S)' added.
    1>  Product 'ComponentOne (C1P)' added.
    1>  Starting license compilation...
    1>  Searching for a license for 'C1S,C1P,C1SJ,C1PJ(2025.1.0.0-)'.
    1>  Compiling license: C1P69958558********037
    1>  Compiling license: C1S43693510********033
    1>  Finished compiling licenses.
  • Posted 30 September 2026, 2:22 am EST

    Hi,

    this should help: https://developer.mescius.com/forums/winforms-edition/performance-of-generating-net6-license-during-build

    The csproj property “DisableGclm” was renamed to “DisableSA3” (but I think the old name still works)

    Best regards

    Wolfgang

  • Posted 30 September 2026, 5:57 am EST

    Hello Thomas,

    To reduce the build time, we suggest adding true for your projects. This property makes our products skip checking for a version update of SA3Client from NuGet, which improves the license compilation time.

    Thank you, Wolfgang, for your input. Regarding Wolfgang’s approach, it does work, but it comes with a trade-off. It stops the license compilation and generation process entirely. This means you would be required to manually generate and embed the runtime license file for every single project in the solution, which is an overhead in itself.

    This is why you can try using SkipSA3ClientCheck instead, as it keeps the necessary license generation processes intact while still improving the build speed of your project.

    Note: Since there are 90+ projects in your solution, you can add a Directory.Build.props file at the root folder of your solution with the property above, and it will automatically apply to all projects. https://learn.microsoft.com/en-us/visualstudio/msbuild/customize-by-directory?view=vs-2022

    If you have any other questions or concerns, please let us know.

    Best Regards,

    Vivek Singh

  • Posted 15 October 2026, 11:00 am EST

    I’m with Thomas and Wolfgang, the compiling time with the new license is getting ridiculously slow. The longest part of a building a 10 projects solution should not be the 3rd party license.

    Please do something about this.

  • Posted 16 October 2026, 4:54 am EST

    Hi,

    We completely understand your concerns.

    During each build, SA3Client first checks for version updates and then embeds the runtime license. This process takes a few seconds per project, and the cumulative delay can become significant when building a large number of projects.

    To reduce build times and manual effort, you can use the SkipSA3ClientCheck option, which skips the “version update” part. You can either set this option to true in each .csproj file or configure it in a Directory.Build.props file to apply the setting across the entire solution.

    Please refer to Vivek’s response above for further details.

    Best Regards,

    Kartik

Need extra support?

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

Learn More

Forum Channels