2009-03-01 17 views
6

vbscriptから.NET DLLファイルを同期的に実行したいのですが可能ですか?はいの場合は、GACアセンブリを実行できますか?あなたは.NETコード用のCOMラッパーを作成する必要があり、その後、あなたの.NETコードを呼び出すことができる必要がありますのでvbscriptから.NETアセンブリ(dll)を実行することはできますか?

おかげで、 オフェル

答えて

14

私はあなたが最初のAssemblyInfo.csファイル内のComVisible属性を含めることによって、.NETアセンブリのCOM-表示をしなければならないと思う:

[ComVisible(true)] 

は、MSDNで、このページを参照してください:Packaging an Assembly for COM

そして中VBScriptを使用すると、COMコンポーネントにアクセスするのと同じ方法で、つまりCreateObjectまたはServer.CreateObjectを使用して同じ方法でこれらのコンポーネントにアクセスできます。

Set testObj = CreateObject("MyNamespace.MyType") 

GACはVBScriptからアクセスする必要があるかもしれませんが、私はこのようにしていませんので、わかりません。

なぜあなたはVBScriptでそれをしたいですか?あなたのVBScriptが行うことを意図した.NETコンソールアプリケーションを作るだけではどうですか? DLLは既に.NET上にあるので、それは問題ではありません。


EDIT:あなたは、通常の実行可能プログラムと同様のVBScriptから呼び出して調べることができる代わりに、DLLのコンソールEXE(またはDLLを包み込むEXE)を作成することがありますこれを行う別の方法結果を返します。多くの要因によって、これはCOMコードを維持するよりも柔軟性があります。

+0

いつもそうです:-) 拡張が必要な​​vbscriptで書かれた既存のプロジェクトがあります。 拡張子はvbscriptを使用して行うことはできません。 – ofer

+0

@ofer duh ...私はレガシー言語でレガシーコードを維持するという苦労を知っています。 – chakrit

2

は、VBScriptは、COMオブジェクトからコードを実行することができます。

2

直接ではありません。

.NETアセンブリがCOMコンポーネントとして公開されている場合、それが可能性があります。

関連する問題