我々のしたこと:
外部 Web サービスと対話する C# クラス ライブラリ プロジェクトを作成しました。「COM 相互運用に登録する」をチェックすると、この DLL が自動的に登録され、登録が行われた PC で使用できるようになります。その PC 上の Navision クライアントは、「自動化」変数を使用してこの DLL を見つけて使用できます。
どうしたの?
この DLL を運用環境にロールアウトする必要があります。ユーザーが使用する2つのRDPサーバーでnavisionクライアントが実行されるRDPソリューションを使用しています。つまり、これら 2 つのサーバーに DLL を展開できればよいということです。ここといくつかのブログ記事で見つけた次の 2 つの解決策を試しました。
- DLL を C:\windows\assembly にドラッグします (管理者として)
- REGASM を使用して DLL を登録します (REGASM ourDll.dll /tlb:ourDll.dll)
これらを実行した後、CREATE コマンドを使用して初期化しようとした Navision の DLL を見つけました。
CLEAR(ourDll);
CREATE(ourDll);
IF ISCLEAR(ourDll) THEN
CREATE(ourDll);
しかし、この後、次のエラー (翻訳版) が表示されます。
このメッセージは C/AL プログラマ向けです。
ID GUID={guid} 1.0:{guid}:'ourDll'.Consume のオートメーション サーバーによって識別される OLE コントロールまたはオートメーション サーバーのインスタンスを作成できませんでした。
OLE コントロールまたはオートメーション サーバーが正しくインストールされ、登録されているかどうかを確認します。
この後、GACUTIL /i ourDll.dll を実行して DLL を GAC にインストールしようとしましたが、結果は同じままです。これを行ったので、エラー メッセージが表示されます。
バッファーに対してテキストが長すぎます。
ただし、このエラーはコンパイルのナビゲーションを停止していないようです。実行時のエラー メッセージは上記と同じままです。