티스토리 뷰
C# COM을 COM+ 으로 만들어 등록하기
C# dll 처럼 만든다.
1. System.EnterpriseService 를 참조한다.
2. using System.EnterpriseServices; 코드 추가
3. Strong Name 파일을 만들기
sn -k dnskorea.snk 를 실행하면 dnskorea.snk 파일이 만들어진다.
4. 만들어진 dnskorea.snk 파일을 cpp 소스가 있는 폴더에 복사한다.
5. 만들어진 String Name을 AssemblyInfo.cs 파일에 추가한다.
위 그림과 같이 17행에 추가한다.
6. System.EnterpriseServices 참조추가하고 아래 처럼 코드를 추가한다.
22~24행 과 29행 처럼 코드 추가한다.
29행 처엄 외부 호출되는 함수중 맨 위 함수 앞에 AutoComplete 를 한번만 추가한다.
[JustInTimeActivation(true)]
[ObjectPooling(MinPoolSize =1, MaxPoolSize =5)]
[Transaction(TransactionOption.Required)]
[AutoComplete]
6. 다시 컴파일 한다.
7. 새로 만들어진 dll 을 GAC 영역에 등록하기
gacutil /i _COMTest.dll 을 실행하면 GAC(Grobal Assembly Cache) 에 등록된다.
C:\Windows\Microsoft.NET\assembly\GAC_32\_COMTest\v4.0_1.0.0.0__dfa4785b56e8342b 폴더에 dll 파일이 생긴다. 복사해서 파일 붙여넣기가 되지만 반드시 gacutil.exe 로 등록해줘야만 한다.
참고>
만들어진 dll 프로젝트 버전에 따라 폴더 위치는 달랐다. 예로, v1(2003년도) 로 만들어진 프로젝트를 VisualStudio2017로 프로젝트 열어 빌드하고 등록하면 C:\Windows\Assembly\GAC_MSIL 폴더에 등록되었다.
8. COM+ Server 프로그램에 등록하기
RegSvcs _COMTest.dll 실행하여 등록한다.
9. 제어판/관리도구/구성요소서비스를 순서대로 선택하면 아래 그림처럼 구성요소서비 창에 _COMTest 가 등록된것을 확인할 수 있다.
COM+ Client 프로그램 작성해서 실행해보기. 혹인 못함.
COM+ 설치하기 : http://petra.tistory.com/1143