0

VB スクリプト コードから C# 関数を呼び出そうとすると、「Activex コンポーネントはオブジェクトを作成できません」というエラーが発生します。

私は次のことをしました。

  1. ProgID、および Comvisible True と厳密な名前で作成されたクラス ライブラリ
  2. RegAsm.exe /codebase dllpath を使用して dll を登録しました (DLL は正常に登録されました。レジストリで確認できます)。
  3. VB スクリプト コードを使用してオブジェクトを作成し、以下のように C# 関数を呼び出します。
Option Explicit
Dim testwfhandler
Set testwfhandler= CreateObject("CoreComponentWorkflow.WorkflowHandler")
If Not testwfhandler Is Nothing Then
    Call testwfhandler.test()
End If
Set testwfhandler= Nothing

サーバーにインストールされているサードパーティ アプリケーション (Tridion ワークフロー) からこの VB スクリプトを実行しています。

上記のエラーが発生する理由がわかりません。サーバーから同じコードを直接実行すると、正常に動作します。

test() この関数は、1 つのログ ファイルを作成し、その中にテキストを追加するだけです。

4

1 に答える 1

3

答えはコメントを通じてすでに提供されていますが、他の人が簡単に見つけられるように本当の答えを提供することは理にかなっていると思いました.

VBScript のロード/実行方法に応じて、32 ビットまたは 64 ビット バージョンの RegAsm.exe を使用して DLL を登録する必要があります。

64 ビット OS では、32 ビット バージョンの regasm が次の場所にあります。C:\Windows\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe

regasm の 64 ビット バージョンが含まれている必要があります。 C:\Windows\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe

64 ビット マシンで 32 ビット モードで VBScript を自分で実行する場合は、64 ビット マシンで 32 ビット モードで VBScript を実行するにはどうすればよいですか? を参照してください。

于 2012-07-27T10:39:18.583 に答える