2009-08-31 2 views
1

내가 .NET 응용 프로그램의 배포 전략에 대한 질문이 객체. 내 응용 프로그램에서는 DSO (의사 결정 지원 개체)를 사용하고 있습니다. Analysis Services 서버 (버전 2000)에 액세스하는 데 사용되는 COM DLL 파일입니다. 나는 솔루션에서 COM, 및 Visual Studio (뒤에 실제로 도구)를 참조했습니다배포 전략은

멋지게 COM 개체에 대한 액세스를 감싸고 .NET에서 사용할 수의 클래스를 만드는 .NET 어셈블리를 만들었습니다.

랩핑은 CLSID를 사용하여 Windows 레지스트리 (DSO 설치 프로그램이 실행될 때 모든 공용 COM 클래스의 CLSID가 등록되어 있음)를 통해 DSO COM 클래스를 생성 된 .NET 객체에 매핑합니다.

문제는 Microsft가 새 버전의 DSO를 출시하고 해당 새 버전을 설치할 때 일부 CLSID가 레지스트리에서 변경되지 않아서 생성 된 .NET 어셈블리의 매핑이 변경된다는 것입니다. 응용 프로그램이 충돌합니다.

DSO는 이전 버전과의 호환 패키지이라는 전체 패키지의 일부로 재배포됩니다. 이 팩에서 뭔가가 변경 되어도 DSO와 반드시 관련이없는 경우 일부 COM 클래스는 새 CLSID를받습니다. 새 패키지로 DSO와 관련하여 실제로 변경된 사항이 없더라도 내 응용 프로그램이 작동을 멈추기 때문에 실망 스럽습니다. 그들은 최신 하나는 내가 생각 SQL Server 2008의 설치 함께 꽤 자주이 패키지를 출시, 그리고 아마도 모든 서비스 팩 업데이트됩니다.

어떻게이 시나리오의 전개를 처리합니까? 새 DSO 버전마다 내 응용 프로그램의 배포 패키지를 실제로 만들어야합니까?

답변

0

당신은 정말 생성 RCW 파일이 필요하지 않을 수 있습니다.

그것은 늦게 문제를 해결하는 것입니다 바인딩처럼 보인다. 수동으로 래퍼 클래스를 만드는 것은 시간이 오래 걸릴 수 있지만 사용 패턴에 따라 다릅니다.

link text

+0

그 링크가 될 것으로 보인다 (효과적으로) 부서 : 여기 .NET에서 후기 바인딩을 설명하는 문서에 대한 링크입니다 ("* FATAL ERROR :. 데이터베이스 서버 실패로 연결 *"). –

관련 문제