ms axapta 2009で使用しようとしている.net activeXに苦労しています。
このコンポーネントをコンパイルしたローカル マシンで使用すると、問題なく動作します。フォームにactiveX要素として追加でき、メソッドとイベントはaxapta-activeX-explorerにリストされており、問題なく操作できます。
しかし、dll を他のクライアントに配布しようとしても、意図したとおりに機能しません。regasm /codebase /tlb を介した dll の登録は正常に機能します - メッセージが表示され、登録は成功しました。コンポーネントは、ax に追加する activeX 要素を選択するときにもリストされますが、関数もプロパティもリストされません。フォームを起動すると、エラーメッセージが表示されます - activeX component CLSID ... システムに見つかりません、インストールされていません。classID は確かに .net で定義されたものです。
タスクマネージャーを見てみると、奇妙なことが起こります。activeX コンポーネント自体は、com アプリケーションと対話するための単なるラッパーです。動作しない_not_installed_で ax-form を起動すると!! activeX-thing、タスクマネージャーは、activeX によってインスタンス化された com-application の新しいプロセスを示します:/
私が試したこと:
- \Windows\Microsoft.NET\Framework\v2.0.50727 など、異なるバージョンの regasm を使用する。C:\Windows\Microsoft.NET\Framework64\v2.0.50727
- レジストリから古いものを削除する前に、.net で新しい GUID を使用する
- さまざまなバージョンの .net フレームワークを使用してコンパイルする
- regasm、regasm /codebase、regasm /codebase /tlb、visual-studio-setup を使用して登録を行う
- コマンドラインから管理者として登録を実行する
- 管理者としてセットアップを実行する
- クライアントマシンで管理者として axe を実行する
- dll を別のフォルダーに移動してから、新しい登録を行います ( windows/system32; ax/client/bin )
- GAC へのインストール ( gacutil /i )
- Visual Studio のさまざまなプロジェクト オプション (COM-Visibility、COM-Interop に登録、別の targetPlatform )
COM-Interop オプションの登録を有効にして Visual Studio でコンパイルすると、regasm-registration だけでなく、コンパイル中に発生したレジストリ アクティビティをログに記録するために registry-monitor-microsoft-tool を使用したという事実を期待しました。
さらに、これらのログを使用してターゲットクライアントにすべてのレジストリエントリを作成しても機能しませんでした。
ヒントやヘルプをいただければ幸いです。これが何日も私をブロックしています:(