The following sections describe limitations that apply when using Visual COBOL to create applications for use with .NET Core.
Visual COBOL enables you to create COBOL applications to be deployed for use with .NET Core version 3.1.
A COBOL application that is to be deployed to .NET Core cannot include any of the following features:
If you need to use an application configuration file to configure the run-time behavior of an application that will be deployed to .NET Core, the configuration file must be a .dll.config file instead of a .exe.config file as it would be for .NET Framework console application.
By default, COBOL applications in .NET Core projects use the native file handler for their file handling operations. In order for the native file handling functionality to be available when the project is deployed and run, when you publish a .NET Core project the published files include the required native run-time system and file handler (as part of the MicroFocus.COBOL.Runtime package).
If you will be debugging a local .NET Core application on Windows where the main program is not COBOL, for example the main program is C#, you must ensure that an appropriate file handler is used. Failure to do so will result in run-time system error COBRT198 ("Load failure") on the first COBOL file I/O statement.
By default the 32-bit native version of the file handler will be available. For this to be used by your application you need to make sure the project for the main program is built to target the x86 platform.
Alternatively, to avoid any dependency on the native run-time system you can use the .NET file handler. You can switch a .NET Core project to use the .NET file handler rather than the native file handler by specifying the directives CALLFH(EXTFH) and CALLSORT(EXTSM) in the project.
By default, COBOL applications in .NET Core projects use the native file handler for their file handling operations. In order for the native file handling functionality to be available when the project is deployed and run, when you publish a .NET Core project the published files include the required native run-time system and file handler (as part of the MicroFocus.COBOL.Runtime package).
If you will be deploying a .NET Core project to an Azure .NET environment you should instead use the .NET file handler in the project to avoid dependencies that would also require the native C runtime to be deployed by the project. You can switch a .NET Core project to use the .NET file handler rather than the native file handler by specifying the directives CALLFH(EXTFH) and CALLSORT(EXTSM) in the project.
The following table shows the versions and architectures of the operating systems to which you can deploy .NET Core-targeted COBOL applications that you have published using Visual COBOL:
Operating System | Versions | Architecture | Run-time Identifier (RID) |
---|---|---|---|
Red Hat Enterprise Linux | 7+ | x64 | rhel.7.4-x64 |
SUSE Enterprise Linux | 12 SP2+ | x64 | sles.12.3-x64 |
Windows 10 Client | Version 1607+ | x64 | win7-x64 |
x86 | win7-x86 | ||
Windows Client | 8.1 | x64 | win81-x64 |
x86 | win81-x86 | ||
Windows Server | 2012 R2+ | x64 | win81-x64 |
x86 | win81-x86 |
The following operating systems are supported by .NET Core but cannot be used for the deployment of COBOL applications:
To be able to use Visual COBOL Build Tools for Windows to build .NET Core projects you must be using Microsoft's Build Tools for Visual Studio 2019. For more information see Using Visual COBOL Build Tools for Windows to Build .NET Core Projects.
Because Visual COBOL requires .NET Core version 3.1 and .NET Core version 3.1 is not supported by Visual Studio 2017, you must be using Visual Studio 2019 to be able to use Visual COBOL to create COBOL applications to be deployed for use with .NET Core.
Using Visual COBOL for Visual Studio 2017 to open a .NET Core-enabled project from a previous version of Visual COBOL results in an error informing you that the project cannot be opened.
It is not possible to use the Windows Forms Designer with projects created using the Windows Forms App (.NET Core) project template.