9

최근에 globalsign에서 인증 코드를 구입했으며 배포를 위해 파일 서명에 문제가 있습니다. 프로젝트에서 생성되어 .msi 파일로 저장되는 두 개의 .exe 파일이 있습니다. signtool을 사용하여 .exe 파일에 서명하면 인증서가 유효하며 제대로 실행됩니다. 문제는 .msi (Visual Studio 설치 프로젝트 사용)를 빌드 할 때 .exe 파일의 서명이 손실된다는 것입니다. .msi가 빌드 된 후 서명 할 수 있지만 설치된 .exe 파일은 "알 수없는 게시자"비즈니스를 계속합니다. 클라이언트 시스템에 설치하기 위해이 파일에 서명을 유지하려면 어떻게해야합니까?Visual Studio의 설치 파일을 서명하는 방법 .msi

답변

11

Visual Studio에서는 컴파일 할 때 obj 및 bin 폴더가 두 개 생성됩니다. 적어도 내 경우 출력은 항상 obj 폴더에서 bin 폴더로 복사됩니다. bin 폴더의 실행 파일에 서명하여 msi에 덮어 쓰게했습니다. obj 폴더에서 실행 파일에 서명하면 문제가 해결됩니다.

+0

덕분에, 이것으로 내 문제가 해결되었습니다! –

+0

고맙습니다. 나는 당신의 대답이 매우 간결하고 읽기 쉽기는하지만 다른 사람들에게 전달하려고하는 사람들을 보았습니다. 내 인생의 시간을 절약했다.) – Dawson

0

서명 된 바이너리가 아닌 서명 된 프로젝트를 설치 프로그램 프로젝트에서 확인 하시겠습니까?

저는 msi builder를 많이 사용하지 않지만 패키지가 전혀없는 파일을 수정한다는 것은 놀랍습니다.

+0

올바른 방향으로 나를 가리켜 주셔서 감사합니다 – Alex

11

당신은 VS 설치 프로젝트에 다음 PostBuiltEvent을 추가 할 수 있습니다 (프로젝트 속성) :

윈도우 8.0 :

"C:\Program Files (x86)\Windows Kits\8.0\bin\x86\signtool.exe" sign /a $(BuiltOutputPath) 

윈도우 10 :

"C:\Program Files (x86)\Windows Kits\10\bin\x86\signtool.exe" sign /a $(BuiltOutputPath) 

Project properties window

PS : signtools의 인수를 참조하여 필요에 맞게 조정합니다. ~ the documentation