2013-09-03 4 views
1

나는 clickonce 응용 프로그램이 있습니다. 해당 응용 프로그램에 대해 COM 표시 dll을 등록해야합니다. 이 응용 프로그램의 코드에 등록을 사용하여 이것이 이미 등록되어 있는지 확인하고 RegistrationServices 클래스 메서드 RegisterAssembly()에 의해 등록합니다. 그것은 관리자가 시작한 경우 잘 작동합니다. 하지만 Clickonce 응용 프로그램을 배포하려면 관리자 권한이 필요 없습니다. 등록을 시도한 두 번째 방법은 관리자가 필요하며 내 DLL을 등록 할 것입니다 내 clickonce에 대한 전제 조건입니다. 내 필수 응용 프로그램 매니페스트 제품을 창조했다,하지만 난이 .NET 4.5의 문제이며 내 사전에 서명을해야 알아 냈ClickOnce 응용 프로그램 배포 및 .NET COM 표시 dll 등록

"Setup has detected that the file '...' has either changed since it was initially published or may be corrupt."

ClickOnce 배포 중에 오류가 발생했습니다. 서명하고 Bootstrapper에 의해 매니페스트를 다시 생성했습니다. 그 후 나는 배치하는 동안 다음 오류가 발생했습니다 :

"File not trusted Error: Setup has detected that the publisher of file cannot be verified"

내가 성공적으로 내에서 ClickOnce를 배포하기 전에 먼저 대상 시스템에 인증서를 설치했다. 그러나 모든 대상 컴퓨터에 clickonce를 설치하기 전에 인증서를 설치할 수는 없습니다. 아무도이 문제를 해결하는 방법에 대해 아이디어가 있습니까? 미리 감사드립니다.

+0

[ComVisible] 어셈블리는 ClickOnce와 호환되지 않습니다. CO의 요점은 당신이 기계에 어떤 설정 변경도하지 않는다는 것입니다. 이 질문은 그렇지 않으면 별 의미가 없습니다. .NET 응용 프로그램에서 [ComVisible] 인 .NET 구성 요소를 사용하는 것처럼 들립니다. 그렇게하지 마십시오. 그냥 참조를 추가하십시오. –

+0

한스, CO를 사용해야하므로 참조를 추가 할 수는 없습니다. – Maksidrom

+0

VeriSign과 같은 CA 또는 VS에서 생성 한 인증서로 응용 프로그램에 서명하고 있습니까? – RobinDotNet

답변

1

질문에 대해서는 Microsoft의 ClickOnce 담당자와상의했습니다. VS2010 또는 VS2012를 사용하고 있습니까? VS2010을 사용할 때 종종 나타나는 오류가 발생한다고 그는 말합니다.

VS2010을 사용하고 해당 컴퓨터에 .NET 4.5가 설치된 경우 VS는 .NET 4.5의 빌드 작업을 사용하고 사용자 지정 부트 스트 래퍼 패키지에서 SHA256 해시를 사용하여 해당 설치 패키지를 만듭니다. 그러나 setup.exe는 부트 스트 래퍼를 다운로드하고 SHAH1과 비교하지 않는 SHAH1 비교를 시도합니다.

VS2012 업데이트 2로 빌드하고 배포하면 문제가 해결됩니다.

올바른 CA 인증서를 사용하여 서명하는 경우에도 작동해야합니다. 이 경우 해시 확인을하지 않고 인증서로 확인 만합니다.

VS2010을 계속 사용하려면 VS2012 업데이트 2에서 setup.bin을 가져 와서 vs2010 폴더에 넣으면 작동합니다. Windows SDK 폴더에 있습니다.