Microsoft Package Dependencies

Various actions and operations within your COBOL development environment depend on certain files that Microsoft distributes in the following packages: the Windows SDK package and the Microsoft Build Tools package.

There is a dependency on the Microsoft Windows SDK if you:

  • Produce COBOL .exe or .dll files.
  • Call Windows APIs from your COBOL .exe or .dll files.
  • Link a C object file into a COBOL .exe or .dll file.
  • Call Windows APIs from a C object file linked into a COBOL .exe or .dll file.
  • Create MIDL files for OLE RPC.

There is a dependency on the Microsoft Build Tools if you:

  • Produce COBOL .exe or .dll files.
  • Manage .lib files.
  • Convert resource files to object modules.

A standard installation downloads and installs the latest available versions of the Windows 10 SDK and the Microsoft Build Tools for Visual Studio 2017 to a default location.

If you distribute a COBOL product installation to clients that do not have access to the internet, then you need to have downloaded these packages and placed them in an accessible place on the network before clients can run an 'offline installation'. The installer includes options to achieve this: downloadmstools enables you to download the required packages to a specific location; and installmstools enables an offline client to install the packages from a local network location.

If you do not use any of the features described above, you can use an install parameter (skipmstools=1) that will skip the download and installation of these dependencies.

All of these installation options are discussed in more detail in the Installation Options topic for your product.

One of the final steps of the installation process configures the downloaded and installed package versions for use in your COBOL environment. You can view these versions using the Microsoft Build Tools and Windows SDK Configuration Utility - see Managing the Microsoft Build Tools and Windows SDK Packages. This utility also enables you to specify alternative versions should you need to depend on a specific package other than the one downloaded, or one stored in a non-default location.