.NET 구성 요소와 함께 등록이없는 COM을 성공적으로 사용하는 사람이 있습니까?

StackOverflow https://stackoverflow.com/questions/617253

문제

최근까지 우리는 행복하게 사용하고있었습니다 등록이없는 com 우리의 기본 및 .NET COM 구성 요소의 경우. 그러나, 우리는 릴리스 후보에서 출시로 이동하기 위해 .NET 어셈블리의 버전 번호 만 변경 한 후, Windows XP SP3 (Vista에서는 아님)에서 응용 프로그램이 무작위로 충돌하기 시작한 이상한 문제에 부딪쳤다. (머피의 법을 싫어하지 않습니까?)

잃어버린 남자-날과 치아가 많이 나면, 우리는이 문제가 sxs.dll에서 알려진 버그 .NET 클래스에 대한 정보를 검색 할 때 힙 부패가 발생합니다. 문제를 사라지게하는 핫픽스가 있지만 핫픽스는 재분배되기위한 것이 아닙니다.

우리는 등록이없는 COM 구현에 그런 끔찍한 버그가 있다는 사실에 놀랐습니다. .NET 구성 요소에 등록이없는 COM을 성공적으로 사용하는 사람이 있습니까? 이 문제를 어떻게 해결 했습니까?

도움이 되었습니까?

해결책

이 문제는 SXS가 클래스 정보의 크기를 계산하는 방법과 관련이 있습니다. 어셈블리의 버전 번호는이 정보의 일부입니다.

릴리스 후보 버전 번호로 작업하고 있었기 때문에 아마도 릴리스의 버전 번호를 RC 릴리스와 동일한 길이로 만드는 것일 수 있습니다.

이것이 당신에게 효과가 없다면, 핫픽스에 대한 재분배 권한을 요청하기위한 확립 된 프로세스가 있습니다. 이 경로를 추구하기 위해 Microsoft 고객 지원에 참여할 것입니다.

다른 팁

기본 및 .NET 구성 요소 모두에 등록이없는 COM을 사용하고 있습니다. 우리는 이러한 구성 요소에 고정 어셈블리 버전 번호를 사용하기로 결정했습니다 (주로 동적 빌드 번호/*가있는 .NET 구성 요소를 반복적으로 regim-ing. 이상적이지는 않지만 주어진 구성 요소의 어떤 버전을 사용하는지 결정하는 다른 방법이 있습니다 (개별적으로 패치되지 않음).

그것은 실제로 매우 불쾌한 문제처럼 들립니다! KB 기사는 거의 SXS를 사용하는 것처럼 보이게합니다. 내가 아는 한, 그것이 reg-free com을 수행하는 유일한 방법이라는 것을 알고 있습니까?

참고로 핫픽스가 직접 다운로드 할 수 있습니다. http://www.microsoft.com/en-us/download/details.aspx?id=27680

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top