2009-10-20 4 views
0

C#의 .Net 프로그램이 내 API가 자신의 API에 액세스하는 데 사용하는 독점 DLL을 참조합니다. 그러나 모든 것이 잘 작동합니다 .. 그러나 프로그램을 제거하거나 프로그램을 제거 할 때 DLL 파일이 역 참조되었거나 Windows/.Net에 의해 등록 해제 된 것으로 보아 원래 프로그램 (광산 아님)이 더 이상 실행되지 않습니다.제거하는 동안 공유 DLL이 등록 해제/해제되는 것을 보호 하시겠습니까?

필자는 DLL 파일을 새 디렉토리에 복사하고이 새 위치에 C# 솔루션을 참조했지만 동일한 문제가 발생합니다. GAC 또는 레지스트리에서 DLL의 ID와 관련이 있다고 확신합니다.

Visual Studio 2008을 사용하고 있습니다. 앞에서 설명한대로 C#으로 해결할 수 있습니다. 누군가 내 솔루션을 구성하여 DLL에 대한 참조가 새로운 지역화 된 사본/등록을 만들도록 도와 줄 수 있습니다. 그래서 내 프로그램이 제거되면 원본 공급 업체의 DLL을 방해하지 않을 수 있습니까?

저는 베테랑 코더지만 Windows .Net 초보자입니다.

+0

응용 프로그램을 어떻게 배포합니까? VS에서 설치 프로젝트를 사용하여 MSI 파일을 만드십니까? ClickOnce? – ParmesanCodice

답변

0

ClickOnce를 사용하여 응용 프로그램을 설치하고 있습니까? 그렇다면 DLL을 "전제 조건"으로 표시하십시오. 그렇지 않으면 원래 버전보다 최신 버전의 DLL을 설치할 수 있습니다.

+0

아니요, ClickOnce 앱이 아닙니다. C# 콘솔 앱 이건 C# 서비스 이건,이 역 참조 DLL 문제가있었습니다. 제거 할 때 DLL이 등록되지 않았기 때문에 원래 공급 업체의 프로그램이 중단됩니다. 저는 현재 서비스 솔루션 참조 목록에 "격리 됨"이라는 참조를 만들고 서비스 설치 프로그램 참조 목록에 "영구"으로 만드는 등의 솔루션을 해킹하려고 시도하는 모든 순열을 시도하고 있습니다. 난 내 애플 리케이션의 제거시 원본으로 엉망이되지 않도록 DLL의 새 사본을 분리하는 모범 사례 방법을 찾고 있어요. 감사! – Patsy

관련 문제