2014-04-15 13 views
0

regasm을 사용하여 내 개발 컴퓨터에 등록하고 올바르게 작동하는 어셈블리를 작성했습니다. 사용자 컴퓨터에 그러한 라이브러리를 배포하는 데 권장되는 방법이 무엇인지 궁금합니다. 내 사용자는 Excel VBA의 COM 라이브러리를 사용합니다.사용자 컴퓨터의 .NET 어셈블리에서 COM 클래스를 배포하는 가장 좋은 방법

나는 regasm을 호출하여 사용자에게 전달하는 간단한 스크립트를 작성할 수 있지만 최선의 방법인지 확실하지 않습니다. 예를 들어 몇 가지 업데이트를 제공 한 후 내 사용자는 등록 된 라이브러리의 여러 버전으로 끝날 수 있으므로 더 이상 필요하지 않은 경우 이전 버전을 제거하는 방법을 제공하고 싶습니다. 사용자는 VBA 스크립트를 직접 작성하여 사용하는 COM 라이브러리의 버전을 알 수 있으므로 어떤 버전을 제거 할 수 있는지 알려줄 수 있어야합니다.

가장 좋은 방법은 무엇입니까?

+0

이 서버를 사용할 것으로 예상되는 종류의 클라이언트 프로그램에 대해 전혀 말하지 않으면 의미있는 답을 얻을 수 없습니다. COM에는 강력한 DLL 지옥 문제가 있습니다. 이전 버전을 임의로 제거하거나 바꾸면 문제가 생길 것입니다. 당신이 클라이언트 프로그램을 깨뜨릴 확률은 매우 높습니다. –

+0

@HansPassant - 수정 됨. –

+0

그래서 클라이언트 프로그래머가 어떤 버전을 사용하고 있는지 알 수 없습니다. * 이전 버전을 자동으로 제거하지 * 마십시오. * 이전 버전을 그대로 두어야합니다. 새 버전이 이전 버전과 평화롭게 공존 할 수 있는지 확인하십시오. 즉, 새로운 [AssemblyVersion]을 사용하여 GAC에 배포해야합니다. 그리고 COM 규칙을 따르십시오. 새 버전의 등록이 이전 인터페이스를 덮어 쓰지 않도록 인터페이스의 변경 사항에 새 지침이 필요합니다. –

답변

1

나는 응용 프로그램을 설치하는 데 WiX을 사용하고 Heat라는 제품군에이 등록 항목을 만드는 기능을 지원합니다. 그것은 약간의 학습 곡선을 가지고 있지만, 나는 그것을 설치 프로그램 스위트로 생각했습니다. 무료이며 널리 사용됩니다.

간단한 솔루션을 찾고 있다면 수동으로 dll을 등록/등록 취소하고 파일을 설치/제거한다고 말하는 것과 같은 배치 파일을 만들 수 있습니다.