문제

vbscript에서 .net dll 파일을 동기식으로 실행하고 싶습니다. 이것이 가능합니까? 그렇다면 GAC 어셈블리를 실행할 수 있습니까?

감사합니다, Ofer

도움이 되었습니까?

해결책

AssemblyInfo.cs 파일에 comvisible 속성을 포함시켜 .net 어셈블리를 com-visible로 만들어야한다고 생각합니다.

[ComVisible(true)]

MSDN 에서이 페이지를 참조하십시오. com을위한 어셈블리 포장

그런 다음 vbscript에서는 com 구성 요소, 즉 createobject 또는 server.createobject를 사용하여 COM 구성 요소에 액세스하는 동일한 수단으로 해당 구성 요소에 액세스 할 수 있습니다.

Set testObj = CreateObject("MyNamespace.MyType")

나는 GAC가 vbscript에서 액세스하는 데 필수적이라고 생각하지만 나는 이런 식으로 그것을하지 않았으므로 확실하지 않습니다.

왜 vbscript에서 그렇게하고 싶습니까? vbscript가하는 일을하는 .NET 콘솔 애플리케이션을 만들지 않겠습니까? DLL이 이미 .NET에 있기 때문에 문제가되지 않아야합니다.


편집하다: 이를 수행하는 또 다른 방법은 일반 실행 프로그램처럼 VBScript에서 호출 할 수있는 DLL (또는 DLL을 마무리하는 EXE) 대신 콘솔 exe를 만드는 것일 수 있습니다. 많은 요인에 따라 COM 코드를 유지하는 것보다 유연 할 수 있습니다.

다른 팁

vbscript는 com 객체에서만 코드를 실행할 수 있으므로 .NET 코드에 대한 COM 래퍼를 작성해야합니다. 그런 다음 .NET 코드를 호출 할 수 있어야합니다.

직접적이지 않습니다.

.NET 어셈블리가 COM 구성 요소로 노출 된 경우 가능할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top