GAC에 등록하기 위해서 DLL 를 만들고 Strong Name를 줄 경우
일반적으로는 간단하다.
VS2003, VS2005 이상에서는 서명부분에서 직접 만들어 주거나 만들어진 snk파일을 첨부하기만
하면 별 무리가 없으니까 말이다.
(snk 파일 만들기는 여러자료들도 많고 간단해서 특별하게 까다로운 점은 없다.)

snk파일 만들기
1.VS 명령프롬프트를 실행하고 Command Line에 sn.exe -k snkTest.key 라고 하면 끝

그런데 문제는 이제부터 이다.
강력한 이름을 준 dll이 만일 다른 dll를 참조하고 있다면 참조된 dll도 강력한 이름으로
서명되어 있어야 한다.(빌드 하게 되면 강력한 이름을 적용해야 한다는 오류가 뜬다.)

그런데 소스 자체가 있다면 key를 첨부하는데는 무리가 없겠지만 단지 dll만 존재한다면
어떻게 할까?

방법은 아래와 같다.
1.키파일을 우선 생성한다.
sn -k key.snk

2.MSIL를 얻어온다.
ildasm TEST.dll /out:TEST.il

3.원본dll를 rename한다.
ren TEST.dll TEST.dll.orig

4.추출된 MSIL와 key파일을 이용해서 새로운 assembly를 생성한다.
ilasm TEST.il /dll /key= key.snk

위 처럼 해서 생성된 dll를 다시 참조해서 빌드하면 더 이상 오류가 없겠지요.

IP 로 컴퓨터 이름 알아오기.

using System.Net;

 private void button1_Click(object sender, System.EventArgs e)
  {
   IPAddress serveIP = IPAddress.Parse(this.textBox1.Text);
   IPHostEntry serhost = Dns.GetHostByAddress(serveIP);
   this.textBox2.Text = serhost.HostName.ToString();

  }

+ Recent posts