저는 오픈 소스 프로젝트를 관리하고 프로젝트의 바이너리 패키지에서 공개 된 바이너리에 서명하고 싶습니다. Visual Studio csproj
및 sln
파일을 사용하여 프로젝트를 관리 및 빌드하고이 파일을 프로젝트 소스 패키지의 일부로 배포합니다.오픈 소스 프로젝트에서 강력한 이름의 키 쌍을 관리하기위한 권장 방법은 무엇입니까?
내 빌드의 생성 된 바이너리에 서명하고 snk
키 쌍 파일을 배포하지 않으려면 어떻게해야합니까? Visual Studio를 사용하여 어셈블리에 서명하면 각 프로젝트 파일에 이제 키 쌍의 복사본이 필요합니다. 암호로 보호 된 경우에도 키 쌍 배포에 익숙하지 않습니다.
편집는 :
또 다른주의해야 할 점은 어떤 InternalsVisibleToAttribute
를 통해 프로젝트 보조금 친구 액세스에서 어셈블리 및 프로젝트 참조를 통해 그 친구를 만들 것입니다. 따라서 이러한 어셈블리는 서명 된 어셈블리를 참조 할 때 강력한 이름을 사용해야합니다. 그러나 키 쌍이 배포되지 않으면 최종 사용자가 소스를 빌드하고 프로젝트 관계를 유지 관리 할 수 있습니까? 임시 키 쌍 파일을 사용하는 경우 InternalsVisibleToAttribute
참조를 깨뜨린 서명 된 어셈블리의 공개 키 토큰이 변경되지 않습니까?
프로젝트 및 솔루션 파일을 배포해야하므로 (서명이 활성화 된 경우) 솔루션을 빌드하는 데 키 쌍이 필요하기 때문에 최종 사용자가 "더미"키 쌍을 배포해야합니까? 프로젝트 파일을 조작하지 않고도 빌드 할 수 있습니까? 서명을 사용하지 않는 프로젝트 파일을 체크인하는 것은 번거롭고, 릴리스가있을 때마다이 설정을 토글해야합니다. –
다음을 수행 할 수 있습니다. .snk 파일이 이미 있는지 확인하는 빌드 단계를 추가하고 필요한 경우 새 파일을 생성하기 위해 sn.exe를 실행하십시오. 그런 다음 다른 사용자의 저장소에서 바로 빌드됩니다. – sharptooth