VS 2008 설치 및 배포 프로젝트를 사용하여 관리되는/관리되지 않는 혼합 된 응용 프로그램을 배포하고 있습니다. 나는 "등록"속성의 열거 된 값인 "vsdraCOM"내장 등록 정보를 사용하여 혼합 모드 DLL을 등록하는 데 문제가있었습니다. 해결 방법으로 .NET 사용자 정의 설치 어셈블리를 추가했습니다. System.Configuration.Install.Installer에서 파생됩니다.) 나는 그 클래스가 실행 중이고 다수의 작업이 성공적으로 설치되고 어셈블리의 코드를 통해 제거한다는 것을 확신합니다. 여러 어셈블리의 Dll (Un) RegisterServer 진입 점 실행 ..NET 사용자 지정 동작을 실행하기 전에 GAC를 강제 설치 하시겠습니까?
그러나 하나의 DLL이 성공적으로 등록되지 않았습니다. GAC에 설치하려는 일부 타사 재배포 가능 어셈블리에 의존하는 유일한 DLL입니다. VS 2008 설치 및 배포 프로젝트의 기본 제공 기능 덕분에 이러한 어셈블리가 GAC에 설치되었습니다. 설치 프로그램이 GAC 설치를 실행하기 전에 사용자 지정 작업이 실행 중임을 확인했습니다.
휴. 그래서 제 질문은, 사용자 지정 작업을 실행하기 전에 설치 프로그램이 GAC 설치를 실행하도록하는 방법이 있습니까? 이 작업을 수행하는 사용자 지정 작업의 "조건"속성을 사용하는 방법이 있습니까? 그렇지 않다면 최선의 대안은 무엇입니까? DLL에서 레지스트리 항목을 캡처하여 설치 프로그램의 레지스트리 설정에 추가하십시오 (나중에 누군가가 새 COM 서버를 클래스에 추가 할 수 있기 때문에 마음에 들지 않습니다). .NET 코드를 사용하여 어셈블리를 수동으로 GAC에 설치합니다 (아직 수행 방법을 모름).
감사합니다,
데이브
감사합니다. 우리는 installshield를 사용합니다. 그러나 빌드 컴퓨터가 다시 실행되기까지 몇 주일이 걸릴 것이므로 안정적인 설치가 필요합니다. MSI API 솔루션은 유망한 것으로 들립니다. 참고로 System.EnterpriseServices.Internal.Publish.GACInstall()이 GAC에 임의의 어셈블리를 설치한다는 것을 알았지 만 이는 여러 가지 이유로 적합하지 않습니다 ("Internal", 약간의 오류 검사, 롤백/의미를 제거하십시오.) –