Windows 8 소비자 미리보기에서 Visual Studio 11 베타 사용.WINMD 라이브러리를 사용하면 강력한 이름 유효성 검사 예외가 발생합니다.
문제는 : 출력 형식이 WinMD로 설정된 클래스 라이브러리의 클래스를 사용하려고하면 "강력한 이름 유효성 검사"오류 (HRESULT : 0x8013141A의 예외)라는 보안 예외가 발생합니다. 난 그냥 Visual Studio를 사용하여 작은 테스트 애플 리케이션을 (F5) 실행하려고합니다.
출력 유형을 "클래스 라이브러리"로 설정하면 문제가 해결됩니다. 작은 (오히려 사소한) 테스트 프로젝트는 여기에서 찾을 수 있습니다 :
http://download.tallcomponents.com/WinRTApplication3.zip
내가 (비밀번호 없음) 새로 생성하여 .snk 파일을 사용하여, 클래스 라이브러리의 "어셈블리 서명"플래그를 설정했습니다. 생성 된 ClassLibrary1.winmd 파일 SN의 -vf를 실행하면 보여줍니다
ClassLibrary1.winmd이 서명 한 서명이 연기 또는 시험 서명 조립
그래서 아마 문제가 출력이 "제대로"되지 않았 음을 기본적입니다 ? 나는 서명하기 위해 클래스 라이브러리를 지정 했으므로이 문제를 해결하기 위해 무엇을해야할지 모르겠다. WinMD 파일로 출력 할 때만 이것이 일어나는 이유도 모르겠다. 이 시점에서 디버깅 및 테스트 용으로 "공식적인"인증서가 필요 없다고 가정합니다.
음, 이것이 초급 질문 인 경우 유감입니다. 나는 "google"대답을하려했지만, 주로 2 년 이상 된 히트 곡과 winmd 대신 "바람"을 제안하는 google ...
여기에 새 태그 "winmd"를 만들 수 없다 ... (평판이 충분하지 않습니다.)
이것은 흥미 롭습니다. Visual Studio에서 "어셈블리 플래그에 서명"을 해제하면 예외가 사라집니다. –
그 이유는 기본적으로 다른 사람들이 사용할 구성 요소를 만들고 싶었 기 때문에 어떤 점에서 결과에 서명해야합니다. 내 도구 세트는 Visual Studio로만 구성됩니다. 나는 그것이 winmd를 이해한다고 생각했다. 내 관점을 바꾸어 주셔서 감사합니다. –
글쎄, 누구든지이 문제에 부딪 힐 경우 : 출력 유형 "class library"를 선택하면 어셈블리에 서명해야합니다. 결과적으로 "WinMD"출력 유형을 선택하면 컴파일러가 불만을 제기하지 않지만 다시 서명을 해제하지 않는 한 강력한 이름 유효성 검사 예외가 발생합니다. –