C#

csc로 라이브러리 만들기

Falto 2022. 12. 9. 17:43
반응형

■ 라이브러리 만들 때 접근 제한자 주의

dll로 만들고자 하는 소스 파일의 클래스 제한을 public으로 바꿔줘야 한다.

앞서서 LogWriter.cs 모양은 아래와 같았음

Program.cs
using System;
class Program {
   static void Main(string[] args) {
         LogWriter logWriter = new LogWriter();
         logWriter.Write("start");
   }
}
LogWriter.cs
using System;
class LogWriter {
   public void Write(string txt) {
        Console.WriteLine(txt);
   }
}

 

class LogWriter 앞에 접근 제한자가 명시되어 있지 않지만, 이런 경우 internal 임.

여러 exe, dll에서 이 클래스를 사용하려면 public으로 해 주어야 함.

using System;
public class LogWriter {
    public void Write(string txt) {
        Console.WriteLine(txt);
    }
}

 

csc.exe로 라이브러리를 만들려면 아래처럼;

c:\temp) csc/target: library LogWriter.cs

결과는 LogWriter.dll이 만들어짐.

 

Program.cs에서 이 라이브러리를 사용하려면,

c:\temp> csc Program.cs /r: LogWriter.dll → Program.exe가 만들어짐.

배포할 때는 Program.exe와 함께 LogWriter.dll를 동시에 줘야 정상동작함.

 

참조(reference)
DLL을 다른 프로그램에서 사용한 것

 

csc가 자동으로 참조하는 dll들은 위처럼 명시하지 않아도 된다. 자동참조 dll 목록은

C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.rsp

♨ csc.rsp에 원하는 dll 이름을 넣어두면 자동참조된다.

북눈으로 정리함 (www.booknoon.co.kr)

반응형