닷넷 프레임워크는 어셈블리를 GAC에 등록하는 2가지 방법이 있었다.
1. gacutil.exe의 사용
2. c:\Windows\Assembly 폴더에 Drag & Drop

1번의 경우는 당연한거고, 2번의 경우 Assembly가 특수한 폴더형태로 되어있기에 가능한 일이었다. (내부적으로 자동 등록) 하지만 닷넷 프레임워크 4.0부터는 GAC의 폴더가 변경이 되었고, 이는 일반 폴더 형태로 구성이 된다. 즉, 2번의 방법을 사용할 수 없기 때문이다.

그럼 1번의 방법을 이용하여 등록하면 되지 않느냐 라고 생각할 수 있는데 4.0용 gacutil.exe 파일은 Windows SDK에만 포함되어있다. (어째서...) 개발환경에서야 SDK를 깔면 간단하지만, 실제 운용하는 서비스용 서버에 전부 SDK를 깔 수도 없는 노릇이므로 SDK에서 gacutil 관련 파일만 복사하여 Stand Alone버전으로 구성해야한다. 필요한 파일은 다음과 같다.

(Windows SDK 7.0A 기준)
Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\gacutil.exe
Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\gacutil.exe.config
Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools\1033\gacutlrc.dll

상기 파일들만 복사하면 서비스용 서버에서 gacutil.exe를 사용하여 어셈블리를 GAC에 등록할 수 있다. 물론 닷넷 프레임워크 4.0은 당연히 깔려있어야 한다.

참고
http://social.msdn.microsoft.com/Forums/en/netfxsetup/thread/8289751b-be25-4a23-a5e2-709645b8c651
크리에이티브 커먼즈 라이센스
Creative Commons License
2010/06/30 12:50 2010/06/30 12:50

오늘의 삽질

Posted at 2010/06/29 17:36// Posted in dev
간만에 머리가 아퍼지려고 할 때까지 삽질을 했기에, 로그 차원으로 남겨둠.

1.
닷넷 프레임워크 4를 이용해서 만든 어셈블리를 gacutil을 이용하여 GAC에 등록하는데, 아무리 해도 %windir%\Assembly 폴더에 나타나질 않는다. 분명히 성공적으로 등록했다고 하는데 계속 Assembly폴더에 나오지 않아 너무너무 황당해서 프레임워크 버전을 2.0으로 바꿔서 GAC에 등록해보니 정상적으로 등록! 하여 구글링을 해보니 다음과 같은 이야기가.

http://stackoverflow.com/questions/3054304/gacutil-exe-successfully-adds-assembly-but-assembly-not-viewable-in-explorer-wh

한마디로 닷넷 프레임워크 4 부터는 c:\windows\microsoft.net\assembly 폴더에 저장이 된다는 얘기.

2.
위의 삽질에 이어서, C#으로 만든 클래스를 ASP에서 사용하기 위해 COM으로 만들었다. regasm을 이용하여 타입 라이브러리를 잘 등록하여 레지스트리에도 정상적으로 들어갔는데, ASP에서 Server.CreateObject를 이용해서 생성하려고만 하면 생성할 수 없다는 오류가 계속 반복되는 것이었다. 거의 반나절을 날려먹은 끝에, 내 PC가 Windows 7이라는 점(IIS 버전이 7.5, 게다가 64비트 OS)을 착안 구글링을 하다가 느낌이.. '이것은 설정의 문제일 것이다' 하고 IIS 관리자를 이잡듯이 뒤지는 동안 (게다가 일어OS라서 눈에 잘 안들어온다) 수상한 옵션 발견. 어플리케이션 풀의 상세 설정에서 '32비트 어플리케이션의 유효화' 라는 옵션이 False로 되어있다. True로 변경하니, 쾌적하게 실행이 된다.

하루가 가기 전에 해결해서 다행;;
크리에이티브 커먼즈 라이센스
Creative Commons License
2010/06/29 17:36 2010/06/29 17:36

성격그래프

Posted at 2010/06/27 23:35// Posted in life/baton&test

내가 간사하다니!


테스트하기
크리에이티브 커먼즈 라이센스
Creative Commons License
2010/06/27 23:35 2010/06/27 23:35

[20100605]

Posted at 2010/06/07 15:08// Posted in life/photo
海ほたる

iPhone @海ほたる



블로그를 너무 방치해두는 거 같아,
계정 만료되면 서비스형 블로그로 옮겨야겠다.
크리에이티브 커먼즈 라이센스
Creative Commons License
2010/06/07 15:08 2010/06/07 15:08