.NET Core の既知の問題点および制約事項

次の各セクションでは、.NET Core で使用するアプリケーションを Enterprise Developer を使用して作成する際の制限事項について説明します。

.NET Core のバージョン

Enterprise Developer では、.NET Core バージョン 3.1 で使用する COBOL アプリケーションを作成してディプロイできます。

COBOL 言語

.NET Core にディプロイする COBOL アプリケーションには、次の機能を含めることはできません。

  • ACUCOBOL-GT ファイル処理
  • CBL_THREAD_KILL ライブラリ ルーチン
  • ILVERIFY(CHECK) コンパイラ指令オプション
  • JSON PARSE 文
  • 2 番目のスレッドの STOP RUN 文
  • XML プリプロセッサまたは XML 拡張 (ただし、XML PARSE および XML GENERATE 文は使用できます)

COBOL ランタイム構成

.NET Core にディプロイされるアプリケーションのランタイム動作をアプリケーション構成ファイルを使用して構成する必要がある場合は、.NET Framework コンソール アプリケーション用の .exe.config ファイルではなく .dll.config ファイルを使用する必要があります。

データベース アクセス

  • Oracle では、Oracle データベースにアクセスする SUSE Enterprise Linux にディプロイされた .NETCore 3.x クライアント アプリケーションはサポートされていません。
  • .NET Core にディプロイされる COBOL アプリケーションで OpenESQL CONNECT 文を使用する必要がある場合は、CONNECT 文の書き方 6 を使用する必要があります。詳細については、「CONNECT」を参照してください。

COBOL 以外のメイン プログラムによるデバッグ

デフォルトでは、.NET Core プロジェクトの COBOL アプリケーションは、ファイル処理操作にネイティブ ファイル ハンドラーを使用します。プロジェクトのディプロイおよび実行時にネイティブ ファイル処理機能を利用できるようにするために、.NET Core プロジェクトをパブリッシュすると、パブリッシュされたファイルに必要なネイティブ ランタイム システムとファイル ハンドラーが (MicroFocus.COBOL.Runtime パッケージの一部として) 含まれます。

メイン プログラムが COBOL ではない Windows 上のローカル .NET Core アプリケーションをデバッグする場合、たとえばメイン プログラムが C# である場合は、適切なファイル ハンドラーが使用されていることを確認する必要があります。そうしないと、最初の COBOL ファイル入出力文でランタイム システム エラー COBRT198 (「ロードできない」) が発生します。

デフォルトでは、32 ビットのネイティブ バージョンのファイル ハンドラーが利用できます。これをアプリケーションで使用するには、メイン プログラムのプロジェクトが x86 プラットフォームを対象にビルドされている必要があります。

または、ネイティブ ランタイム システムに依存しないようにするために、.NET ファイル ハンドラーを使用することもできます。プロジェクトで指令 CALLFH (EXTFH) および CALLSORT (EXTSM) を指定することにより、ネイティブ ファイル ハンドラーではなく .NET ファイル ハンドラーを使用するように .NET Core プロジェクトを切り替えることができます。

Azure .NET へのディプロイ

デフォルトでは、.NET Core プロジェクトの COBOL アプリケーションは、ファイル処理操作にネイティブ ファイル ハンドラーを使用します。プロジェクトのディプロイおよび実行時にネイティブ ファイル処理機能を利用できるようにするために、.NET Core プロジェクトをパブリッシュすると、パブリッシュされたファイルに必要なネイティブ ランタイム システムとファイル ハンドラーが (MicroFocus.COBOL.Runtime パッケージの一部として) 含まれます。

.NET Core プロジェクトを Azure .NET 環境にディプロイする場合は、代わりにプロジェクトで .NET ファイル ハンドラーを使用して、プロジェクトでネイティブ C ランタイムのディプロイも必要になる依存関係を回避する必要があります。プロジェクトで指令 CALLFH (EXTFH) および CALLSORT (EXTSM) を指定することにより、ネイティブ ファイル ハンドラーではなく .NET ファイル ハンドラーを使用するように .NET Core プロジェクトを切り替えることができます。

Windows 用の Enterprise Developer ビルド ツール

Windows 用の Enterprise Developer ビルド ツールを使用して .NET Core プロジェクトをビルドできるようにするには、Microsoft の Visual Studio 2019 用ビルド ツールを使用している必要があります。詳細については、「Windows 用の Enterprise Developer ビルド ツールを使用した .NET Core プロジェクトのビルド」を参照してください。

オペレーティング システム

次の表に、Enterprise Developer を使用してパブリッシュした .NET Core 向け COBOL アプリケーションをディプロイできるオペレーティング システムのバージョンとアーキテクチャを示します。

オペレーティング システム バージョン アーキテクチャ ランタイム識別子 (RID)
Red Hat Enterprise Linux 7 以上 x64 rhel.7.4-x64
SUSE Enterprise Linux 12 SP2 以上 x64 sles.12.3-x64
Windows 10 クライアント バージョン 1607 以上 x64 win7-x64
x86 win7-x86
Windows クライアント 8.1 x64 win81-x64
x86 win81-x86
Windows サーバー 2012 R2 以上 x64 win81-x64
x86 win81-x86
注:

次のオペレーティング システムは .NET Core でサポートされていますが、COBOL アプリケーションのディプロイには使用できません。

  • MacOS
  • Docker で実行されている Windows および Linux コンテナー

Visual Studio バージョン

Enterprise Developer には .NET Core バージョン 3.1 が必要であり、.NET Core バージョン 3.1 は Visual Studio 2017 でサポートされていないため、.NET Core で使用する COBOL アプリケーションを Enterprise Developer を使用して作成してディプロイするには、Visual Studio 2019 を使用している必要があります。

Enterprise Developer for Visual Studio 2017 を使用して以前のバージョンの Enterprise Developer の .NET Core 対応プロジェクトを開くと、プロジェクトを開くことができないことを通知するエラーが発生します。

Windows フォーム デザイナー

[Windows Forms App (.NET Core)] プロジェクト テンプレートを使用して作成されたプロジェクトに Windows フォーム デザイナーを使用することはできません。