명령 줄에서 COM DLL을 참조하는 .cs 프로그램을 어떻게 컴파일합니까? csc.exe를 사용하여 COM DLL을 참조하는 어셈블리를 컴파일하십시오.
나는 다음과 같은 경로로 COM DLL을 가정 : C : \ 프로젝트는 \ com1.dll 가정 C# 코드는 파일에 있습니다 : C :이 CSC를 시도했습니다 program.cs\ 프로젝트 \. EXE/lib : "C : \ Projects"/reference:com1.dll "C : \ Projects \ program.cs"
program.exe를 얻으려고하면이 방법으로 COM dll에 대한 참조가 잘못되었습니다. .
- 첫 번째 대답을 참조에 세부 사항을 추가 - 좋아,이 경우에는 가정 내가Type library imported to ADOR.dll
지금 새 DLL에 의해 만든 배치이 응답을 얻기 ADO
tlbimp "C:\Program Files\Common Files\Syste \ado\msador15.dll"
을 사용하고 있습니다 tlbimp는 ADODB를 사용하는 프로그램과 같은 디렉토리에 있습니다.
csc /lib:. /reference:ADOR.dll Program.cs
반환
Program.cs(2,7): error CS0246:
The type or namespace name 'ADODB' could not be found
(are you missing a using directive or an assembly reference?)
- 오버로드 문제 - 당신은하지 COM 직접 DLL, 그 interop 어셈블리 tlbimp와 (또는 손으로)과 기준을 만들어야합니다
using System;
using ADODB;
class Program
{
static void Main(string[] args)
{
Connection connection = new Connection();
connection.Open(args[0]);
//connection.Open(args[0], "", "", -1);
Console.WriteLine(connection.State);
connection.Close();
}
}
오케이 - 시도해 보았습니다. 특정 예제로 ADO COM DLL 사용. 불운. 나는 다른 것을 놓치고 있니? 어쩌면 ADO에는 형식 라이브러리가 없습니다. tlbimp.exe의 오류 메시지가 없습니다. – user410159
ADODB가 올바른 네임 스페이스인지 확인 하시겠습니까? 생성 된 어셈블리에서 ildasm 또는 반사기를 사용하여 주위를 훑어 볼 수 있습니다. –
아니요, ADODB이 올바른 네임 스페이스가 아닙니다. Visual Studio에서 추가 한 참조 - COM을 통해 거기에 추가했을 때 네임 스페이스이기 때문에 가정했습니다. Reflector와 ADOR에서 검사하여 ADODB 네임 스페이스를 강제했습니다. 문제는 그것이 모든 수업을 들여오고 싶어하는 것처럼 보이지 않는다는 것입니다. Visual Studio에서 연결 한 시점을 보여주는 Connection이 누락되었습니다. Connection 객체를 인스턴스화하려면 명령 행에서 컴파일하지 않습니다. 그것 같이 그것은 단지 이용 가능한 것의 부분을 설정합니다. – user410159