.net - 是否可以从vbscript执行.NET程序集(dll)?

标签 .net dll com vbscript assemblies

我想以同步方式从vbscript执行.NET dll文件-这可能吗?如果是,是否可以执行GAC程序集?

谢谢,
奥弗

最佳答案

我认为您首先必须通过在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上,所以这应该不是问题,对吧?

编辑:另一种方法是创建控制台EXE而不是DLL(或包裹DLL的EXE),您可以像正常的可执行程序一样从VBScript调用它并检查返回结果。根据许多因素,这可能比维护COM代码更为灵活。

关于.net - 是否可以从vbscript执行.NET程序集(dll)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/600012/

相关文章:

Delphi TCanvas 对象在使用 dll 后损坏,如何恢复?

c# - 表达式与 nameof

c# - 如何在 Visual C++ 中使用使用 C# 创建的 dll?

c# - TPL 数据流选择阻止将项目发布到其中

delphi - 如何向 DLL 传递对象以及从 DLL 返回对象?

c++ - IE Explore 11 < c++ ATL COM Browser Helper Object (Add-on) 替换 DOM 中的文本

windows - Spectre/Meltdown 补丁导致 COM 方法返回 E_ACCESSDENIED

c# - 如何在我的.Net Framework项目中添加对Windows运行时组件(C++/WinRT)的引用

.net - 是否可以通过控制台应用程序使用 AzureAD 身份验证?

c# - 为什么这个 Linq 代码总是抛出 System.StackOverflowException?