2014-11-06 16 views
1

MSI 프로젝트를 사용하여 .NETassembly을 GAC에 설치하려고합니다. 가는 방법에 대한 일반적인 아이디어가 있지만 MSI을 설치하기 전에 assembly에 서명해야하고, 그렇다면 프로덕션 환경에서 assembly은 어떻게 서명해야합니까?MSI를 사용하여 GAC에 .NET 어셈블리 설치

즉 내가 자동으로 어셈블리에 서명하고 대상 시스템 GACMSI를 통해 설치하는 Visual Studio/InstallShield에 설정할 수있는?

또한 응용 프로그램을 제거하면 GAC,에로드 된 어셈블리도 제거됩니까?

나를 도와주세요. 고맙습니다.

답변

4

어셈블리를 GAC에 게시하려면 어셈블리에 strong name이 있어야합니다. 이것은 전통적인 인증 기관 기반 디지털 인증서를 사용하지 않는 서명 양식입니다. InstallShield는 어셈블리에 강력한 이름을 적용하는 데 특별한 지원을하지 않지만 Visual Studio는 프로젝트 내에서 그렇게 할 수있는 옵션을 제공합니다.

어셈블리의 이름이 정확하면 GAC에 설치할 수 있습니다. MSI가 올바르게 구성되면 (MSI를 사용 중이라고 가정하면) 제거시 MSI가 제거됩니다 (또는 최소한 참조 횟수가 감소합니다).

+0

프로덕션 환경에서 어떻게 통합 할 수 있습니까? 즉, 강하게 명명 된 키를 만든 다음 파일에 적용하면됩니까? 핵심은 파일이 인증서를 사용하여 외부 및 내부적으로 서명되고 충돌이 있는지 여부입니다. 또한 프로세스가 어떻게 자동화 될 수 있습니까? – user1173240

+2

@ user1173240 Authenticode 서명을 적용하기 전에 어셈블리 이름을 지정해야합니다. 이 두 종류의 디지털 서명은 [서로 다른 두 가지 목표를 달성합니다.] (http://blogs.msdn.com/b/ericlippert/archive/2009/09/03/what-s-the-difference-part-five-certificate-signing -vs-strong-naming.aspx). 어쨌든, 링크 된 MSDN 기사를 읽은 다음 [강력한 이름을 사용하여 어셈블리에 서명하는 방법] (http://msdn.microsoft.com/en-us/library/xc31ft41.aspx)에서 링크 된 문서를 구현하십시오. Authenticode 서명이 필요한 경우 InstallShield에서 적용 할 수 있습니다 (릴리스보기> 서명 탭). 또는 새로운 질문을하십시오. –

+0

오른쪽. 고마워. – user1173240