次の各セクションでは、.NETで使用するアプリケーションを Visual COBOL を使用して作成する際の制限事項について説明します。
Visual COBOL では、.NET バージョン 6 で使用する COBOL アプリケーションを作成してディプロイできます。
.NET にディプロイする COBOL アプリケーションには、次の機能を含めることはできません。
.NET にディプロイされるアプリケーションのランタイム動作をアプリケーション構成ファイルを使用して構成する必要がある場合は、.NET Framework コンソール アプリケーション用の .exe.config ファイルではなく .dll.config ファイルを使用する必要があります。
デフォルトでは、.NET プロジェクトの COBOL アプリケーションは、ファイル処理操作にネイティブ ファイル ハンドラーを使用します。プロジェクトのディプロイおよび実行時にネイティブ ファイル処理機能を利用できるようにするために、.NET プロジェクトをパブリッシュすると、パブリッシュされたファイルに必要なネイティブ ランタイム システムとファイル ハンドラーが含まれます。これらは、Micro Focus 機能をすべて含む MicroFocus.COBOL.Runtime パッケージの一部です。アプリケーションに完全な NuGet パッケージが含まれていない場合は、前述の小さい必須パッケージを個別に追加する必要があります。
メイン プログラムが COBOL ではない Windows 上のローカル .NET アプリケーションをデバッグする場合、たとえばメイン プログラムが C# である場合は、適切なファイル ハンドラーが使用されていることを確認する必要があります。そうしないと、最初の COBOL ファイル入出力文でランタイム システム エラー COBRT198 (「ロードできない」) が発生します。
デフォルトでは、32 ビットのネイティブ バージョンのファイル ハンドラーが利用できます。これをアプリケーションで使用するには、メイン プログラムのプロジェクトが x86 プラットフォームを対象にビルドされている必要があります。
または、ネイティブ ランタイム システムに依存しないようにするために、.NET ファイル ハンドラーを使用することもできます。プロジェクトで指令 CALLFH (EXTFH) および CALLSORT (EXTSM) を指定することにより、ネイティブ ファイル ハンドラーではなく .NET ファイル ハンドラーを使用するように .NET プロジェクトを切り替えることができます。
デフォルトでは、.NET プロジェクトの COBOL アプリケーションは、ファイル処理操作にネイティブ ファイル ハンドラーを使用します。プロジェクトのディプロイおよび実行時にネイティブ ファイル処理機能を利用できるようにするために、.NET プロジェクトをパブリッシュすると、パブリッシュされたファイルに必要なネイティブ ランタイム システムとファイル ハンドラーが (MicroFocus.COBOL.Runtime パッケージの一部として) 含まれます。
.NET プロジェクトを Azure .NET 環境にディプロイする場合は、代わりにプロジェクトで .NET ファイル ハンドラーを使用して、プロジェクトでネイティブ C ランタイムのディプロイも必要になる依存関係を回避する必要があります。プロジェクトで指令 CALLFH (EXTFH) および CALLSORT (EXTSM) を指定することにより、ネイティブ ファイル ハンドラーではなく .NET ファイル ハンドラーを使用するように .NET プロジェクトを切り替えることができます。
Visual Studio 2022 では、プロジェクトを正常に開いてビルドするには、.NET 6 プロジェクトの global.json ファイルがソリューション ファイルのディレクトリ レベルに配置されている必要があります。以前のバージョンの Visual Studio では、ファイルはプロジェクト フォルダーなどのソリューションのサブフォルダーに配置されていました。
これは、global.json ファイルがソリューション ファイルのディレクトリ レベルにない場合に、以前のリリースからアップグレードした既存の .NET Core 3.1 COBOL プロジェクトに影響を与える可能性があります。また、既存のソリューションに追加する .NET 6 COBOL プロジェクトにも影響します。
このような場合、MSBuild コマンド ラインからビルドする場合、またはプロジェクトのロードに失敗すると、IDE の出力ウィンドウに次のエラー メッセージが表示されることがあります。
"The SDK 'MicroFocus.Sdk' specified could not be found"
この問題を回避するには、global.json ファイルをソリューション ファイルのディレクトリ レベルに移動する必要があります。
VS2022 で作成された新しい .NET 6 COBOL ソリューションおよびプロジェクトは、必要な場所に global.json ファイルを作成します。
次の表に、Visual COBOL を使用してパブリッシュした .NET 向け COBOL アプリケーションをディプロイできるアーキテクチャとオペレーティング システムを示します。サポートされているオペレーティング システムのバージョンは、Visual COBOL でサポートされるバージョンです。
オペレーティング システム | アーキテクチャ |
---|---|
Amazon Linux 2 | x64 |
Red Hat Enterprise Linux | x64 |
Rocky Linux | x64 |
SUSE Enterprise Linux | x64 |
Ubuntu | x64 |
Windows クライアント | x64 |
x86 | |
Windows Server | x64 |
x86 |
次のオペレーティング システムは .NET でサポートされていますが、COBOL アプリケーションのディプロイには使用できません。
Windows 用の Visual COBOL ビルド ツールを使用して .NET プロジェクトをビルドできるようにするには、Microsoft の Visual Studio 2022 用ビルド ツールを使用している必要があります。詳細については、「Windows 用の Visual COBOL ビルド ツールを使用した .NET プロジェクトのビルド」を参照してください。