[C#] PublicKeyToken=null - DLL 서명하기

2022. 12. 22. 19:53이것저것

728x90

이 작업을 하게 된 이유를 먼저 소개 하자면, spring.net 1.3.2 버전이 필요해서 찾고 있다가

  • spring.net 의 github 위치를 알게 되었고,
  • 해당 버전을 다운로드 한 이후에 빌드를 해 놓고 보니,
  • 나의 프로젝트에서 사용하던 기존 버전의 spring dll 을 먼저 찾고 있는 상황이

발생 했습니다. 어차피 같은 dll 이니 버전만 맞추면 되겠거니 하고 생각해서 맞추려고 보니

우선,

  • PublicKeyToken 값이 없고, 이 문제를 해결하려다 보니
  • dll 을 서명 해야 한다는 것을

알아 냈습니다.

 

그리고, 한 가지를 더 알았죠... 인생을 X삽질의 연속이라는 것을...

 

1. PublicKeyToken=null ?

web.config 파일 등에서 다음과 같이 PublicKeyToken를 찾고 있다면, 해당 dll 이 그 #PublicKeyToke...

blog.naver.com

위처럼만 따라 하면 해당 dll 에 PublicKeyToken 를 찾을 수 있습니다.

하지만 이런 경우도 있죠.

PublicKeyToken 이 null 인 경우 입니다.

 

여담이긴 하지만, 해답을 찾기 위해서 고민을 해야하고 그 고민의 시작 점은 분명 내가 걸어왔던 길 즉, 경험부터 먼저 뒤져보게 된다는 것입니다.

물론, 경험이 많은 사람 일 수록 생각을 잘 안한다는 것이 문제이긴 하지만요(^^;;)

 

생각이 없어 진 이유야 개인적인 성향이나 성격에 문제 일 수도 있고 문제의 난이도에 따라 틀려 지겠지만 이것저것 다 빼고 나면 내가 모르는 것을 가르쳐 주는 선생님들이 세상 한 가득이라는 것도 문제 겠죠.

 

해당 내용으로 검색을 해보면,

https://learn.microsoft.com/en-us/answers/questions/394551/publickeytoken-is-null.html

 

PublicKeyToken is null? - Microsoft Q&A

 

learn.microsoft.com

 

한 줄 답변이 있습니다.

대표사진 삭제

사진 설명을 입력하세요.

내 생각에는 이것이 해답인 것 같네요. dll 이 서명이 안 된 것이다. 입니다.

그런데, 나의 경험치로 조금 만 더 생각을 해 보았다면 알 수도 있지 않았을까? 하는 생각도 드는 것이

 

  • public token 이라고 하는 데, 누군가에게 보여주려면 일반적으로 다 서명을 하지 않을까?
  • 그럼, 서명을 해야 되는 것이 아닌가?

 

하는 생각까지는 갔을 것 같다는 느낌이 들 것 같네요.

그럼, dll 서명 해야만 할 것 같네요.

 

2. DLL 서명하기

서명을 왜 하는 가에 대해서 - 정확히는 디지털서명 - 누군가 물어본다면(질문도 안하겠지만...ㅋ) 디지털 서명은 그 자산에 대해서 고유한 태그를 다는 작업이 아닌가 하는 생각이 듭니다.

적어도 내가 생활하는 반경 내에서 이 물건은 확실히 보장 한다 라는 느낌일까요?

 

이 DLL 을 서명하기 위해서 나는 다음 두개의 툴을 준비 했습니다.

해당 DLL을 서명 했습니다. 아래 처럼요

3. 서명 등록하기

마지막으로 서명을 등록해야 하겠죠...

그것도 별로 어렵지 않죠. 아래처럼 프로젝트 정보 > 서명 탭을 선택하고서

해당 pfx 파일을 선택하면, 암호를 입력하라고 나옵니다. 만들었을 때 암호를 입력하면 끝이 납니다.

이제 확인을 다시 한 번 해볼까요?

 

서명이 잘 된 것을 확인 할 수 있습니다...

 

이상.

 

 

728x90