Skip to content

Add New Windows Version

EdVassie edited this page Nov 23, 2021 · 1 revision
Previous Add New SQL Server Version FineBuild Parameter Inventory Next

This section details the steps needed to add a new Windows Version to SQL FineBuild.

The details shown take the form of a worked example for the addition of Windows 2022 to SQL FineBuild. A similar process can be used to further upgrade SQL FineBuild when the version following Windows 2022 is released.

This process consists of the following steps:

Microsoft have indicated that future updates to Windows 2022 may have increased security dependencies, and this may impact the compatibility of components installed by SQL FineBuild. This is also likely to apply to any future version of Windows. It may become necessary to repeat all of the processes on this page in such a situation.

Top


FBConfigBuild Changes

This section focusses on changes needed in FBConfigBuild.vbs to identify the new version of Windows. Other changes may be needed as described in Validation Changes and Exploiting The New Windows Version.

To be completed

Top


Validation Changes

It is possible that some changes may be needed to the validation checking performed within FBConfigBuild.vbs. The most likely change is that older versions of SQL Server may not be supported or simply may not install on the new version of Windows. It is also possible that some components installed by SQL FineBuild may not be supported or installable on the new version of Windows.

To find out if any of these conditions apply will require testing.

  1. Review FBConfigBuild to identify any warning messages about operating system version

    All relevant code should be found in the subroutines SetupDataDep0 and Validate_Common. Any relevant code found elsewhere should be treated as Technical Debt

    A manual list of such components should be made

  2. Review FBConfigBuild to identify and components that may become not supported or not installable on the new Windows release

    A manual list of such components should be made

  3. Check if any of the components listed above are not supported in the new Windows version

    This will require extensive checking on the internet:

    • The compoment home page as shown in the SQL FineBuild Wiki for the component may show the supported Windows versions
    • The compatibility details shown for the new Windows Version in Microsoft documentation may show that some listed components are either not supported or not installable
    • Other reliable sources of information may show further support issues

    It may be that certain components can only be installed on the new version of Windows if a pre-requisite component is also installed. In this case make a manual list of such dependencies and review this in Exploiting The New Windows Version

  4. Update the validation code in FBConfigBuild

    If any changes to support details have been identified then update the validation code in either SetupDataDep0 and Validate_Common (as relevant) to reflect the new support status. Some components may not have previously had any Windows-specific validation, while other components may already have validation for older versions of Windows. Any new code should be modelled on the existing code found in the given subroutines.

  5. Test that the new validation code works as intended

    Warning or Error messages should be shown where expected. The text of any messages should be clear and follow the pattern of similar messages produced by SQL FineBuild

  6. Review Wiki pages and add new validatioen dtails

    For Windows 2022 the only change identified is that SQL 2016 is not supported on Windows 2022. However, testing showed that it is possible to install SQL 2016 (and also SQL 2012 and SQL 2014) on Windows 2022. A decision was made to show a warning message regarding installing SQL 2016 on Windows 2022 rather than blocking the install, in line with the warning messages already in place for SQL 2012 and SQL 2014, and this has been reflected in the Wiki page for preparing the SQL 2016 install media.

Top


Install Media Changes

Adding support for a new Windows version may require updated or additional software to be added to the \Additional Components folder. If additional software is needed this is likely to require changes to SQL FineBuild in order to install that software.

The most common changes required to support a new Windows version are shown below:

Update .Net 3.5 install media

If the new Windows version introduces a new version of the Windows Kernel, then it is most likely that the install file name for .Net 3.5 will be different to all previous versions. However, all of Windows 2016, Windows 2019, Windows 2022 as well as Windows 10 all use the same version 6.3 kernel and the same file name for the .Net 3.5 install file, although the build version within that file is changed for each Windows release.

To install .Net 3.5 for Windows 2022, the install media supplied with Windows 2022 must be used. The file name for the Windows 2022 .Net 3.5 install media is the same as that used for Windows 2019, but testing has shown that these versions of Windows require their own version of the .Net 3.5 install media. Therefore the Windows 2022 .Net 3.5 install media must be placed in a different folder to that used for Windows 2019.

  1. Create a sub-folder of \Additional Components called Redist\SxS\2022

  2. Mount the install ISO for Windows 2022

    Navigate to the \sources\sxs folder

  3. Copy the file with the name starting microsoft-windows-netfx3

    Paste this file into the \Additional Components\Redist\SxS\2022 folder and overwrite the previous file if it is present

  4. Test that an install of .Net 3.5 workes correctly on Windows 2022

  5. Test that an install of .Net 3.5 still works correctly on the previous version of Windows

    If the install media for .Net 3.for the new version of Windows 5 replaced the install media for the old version of Windows, then text tht .Net 3.5 will install o the old version nof Windows using the new version of the install media. For Windows 2022 this testing has now been done and it is confirmed that .Net 3.5 for both Windows 2019 and Windows 2022 will install correctly using the Windows 2022 install media

  6. Update the Wiki page for Install .Net 3.5

    Add instructions for downloading and installing .Net 3.5 for Windows 2022

Top


Exploiting The New Windows Version

This section uses the list of pre-requisite components produced in Validation Changes to identify what changes may be needed in SQL FineBuild to implement those requirements.

In the past it has sometimes been necessary to apply specific fixes before a given component can be installed by SQL FineBuild. This has resulted in new /Setup... paramteters for the various fixes and additional code to be added to various modules within SQL FineBuild. Where possible this concept should be followed if any new pre-requisites are identified, so that it remains possible to start with a vanilla install of Windows, run SQL FineBuild, and finish with a fully installed and configured version of SQL Server.

  • There can be no set process for adding pre-requisite components into SQL FineBuild. However, exting code patterns should continue to be used wherever possible as this will simplify adding yet further code if it becomes necessary.
  • For example, when installing SQL 2014 on Windows 2012 R2, it has a pre-requisite to Install KB2919355, which in turn has a pre-requisite to Install KB2919442. The required additional parameters, install code and Wiki pages were added to SQL FineBuild in 2014.

For Windows 2022 RTM there were no new pre-requisite components identified. Therefore there were no changes made to SQL FineBuild to exploit the new Windows version

Top


Copyright FineBuild Team © 2021. License and Acknowledgements

Previous Add New SQL Server Version Top FineBuild Parameter Inventory Next

Key SQL FineBuild Links:

SQL FineBuild supports:

  • All SQL Server versions from SQL 2019 through to SQL 2005
  • Clustered, Non-Clustered and Core implementations of server operating systems
  • Availability and Distributed Availability Groups
  • 64-bit and (where relevant) 32-bit versions of Windows

The following Windows versions are supported:

  • Windows 2022
  • Windows 11
  • Windows 2019
  • Windows 2016
  • Windows 10
  • Windows 2012 R2
  • Windows 8.1
  • Windows 2012
  • Windows 8
  • Windows 2008 R2
  • Windows 7
  • Windows 2008
  • Windows Vista
  • Windows 2003
  • Windows XP
Clone this wiki locally