지난 시간에 생성한 사용자 컨트롤은 사설 어셈블리였다.
이번시간에는 그 컨트롤을 공유 어셈블리로 만들어 보겠다.
먼저 사용자 컨트롤을 사용한 exe 파일이 있는 bin/debug 폴더를 확인해보자
그 안에는 생성된 exe 파일 외에 참조한 사용자 컨트롤(dll)도 함께 존재할 것이다.
이제 공유 어셈블리를 생성하고 이 어셈블리를 참조하였을 때 어떻게 되는지 확인해 보겠다.
공유 어셈블리를 생성하기 위해서는 꼭 강력한 이름(Strong-Named) 이여야 한다.
1. 키 생성
Visual Studio .NET 2003의 도구에서 Visual Studio .NET 2003 명령프로프트를 실행한다.
key 파일을 생성할 위치로 이동한 후 다음과 같이 입력한다.
>sn -k 파일명.snk (파일명을 test라고 지정하겠다.)
저장한 위치로 가보면 test.snk 파일이 생성되어 있는것을 볼 수 있을것이다.
2. 지난시간에 작성한 사용자 컨트롤 프로젝트를 열고 AssemblyInfo.vb를 연다.
- 버전수정: <Assembly: AssemblyVersion("1.0.0.0")>
- 키파일 위치 지정 : <Assembly: AssemblyKeyFile("..\\..\\..\\test.snk")> (키 파일의 위치는 어셈블리의 위치를 기준으로 상대경로를 지정하거나 모든 경로를 다 적어줄 수 있다.)
- 접근권한 허용 : 강력한 이름이 아닌 어셈블리에서도 호출가능
상단에 Imports System.Security 추가.
<Assembly: AllowPartiallyTrustedCallers()>
3. 빌드 후 지난 시간에 추가해 둔 gacutil을 이용하여 assembly에 등록한다.
도구 > GAC 등록, 등록이 성공하면 출력창에
"Assembly successfully added to the cache"라는 메시지가 나타난다.
4. 실재로 assembly에 등록 되었는지 확인해 보자
C:\WINDOWS\assembly 에서 등록한 어셈블리를 볼 수 있다.
5. 사용자 컨트롤을 사용한 프로젝트를 열고 이미 참조하였던 것을 삭제하고 다시 참조한 후 빌드한다.
6. 다시 실행파일의 bin/debug 아래로 가보자 이번에는 exe 파일만 보일 것이다. 이제부터 이 실행파일은 C:\WINDOWS\assembly 아래의 어셈블리를 참조하게 되었으므로 만약 사용자 컨트롤이 변경되면 실행파일을 재컴파일 하지 않아도 변경된 내용이 적용되는 것을 확인할 수 있을 것이다.
7. GAC에 등록된 어셈블리를 삭제해 보자
도구>외부도구를 선택하여 외부도구 설정차에서 추가를 선택한다.
제 목 : GAC 삭제
명 령 :C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin\gacutil.exe
인수 : -u입력 후 대상이름 선택(-u $(TargetName))
출력 창 사용 선택 후 적용
사용자 컨트롤 프로젝트에서 위에서 등록한 GAC 삭제를 클릭해 보자
C:\WINDOWS\assembly 에서 등록한 어셈블리가 사라진것을 확인할 수 있다.(이름으로 삭제하므로 버전에 상관없이 이름이 같은 어셈블리를 모두 삭제한다.)
이번시간에는 그 컨트롤을 공유 어셈블리로 만들어 보겠다.
먼저 사용자 컨트롤을 사용한 exe 파일이 있는 bin/debug 폴더를 확인해보자
그 안에는 생성된 exe 파일 외에 참조한 사용자 컨트롤(dll)도 함께 존재할 것이다.
이제 공유 어셈블리를 생성하고 이 어셈블리를 참조하였을 때 어떻게 되는지 확인해 보겠다.
공유 어셈블리를 생성하기 위해서는 꼭 강력한 이름(Strong-Named) 이여야 한다.
1. 키 생성
Visual Studio .NET 2003의 도구에서 Visual Studio .NET 2003 명령프로프트를 실행한다.
key 파일을 생성할 위치로 이동한 후 다음과 같이 입력한다.
>sn -k 파일명.snk (파일명을 test라고 지정하겠다.)
저장한 위치로 가보면 test.snk 파일이 생성되어 있는것을 볼 수 있을것이다.
2. 지난시간에 작성한 사용자 컨트롤 프로젝트를 열고 AssemblyInfo.vb를 연다.
- 버전수정: <Assembly: AssemblyVersion("1.0.0.0")>
- 키파일 위치 지정 : <Assembly: AssemblyKeyFile("..\\..\\..\\test.snk")> (키 파일의 위치는 어셈블리의 위치를 기준으로 상대경로를 지정하거나 모든 경로를 다 적어줄 수 있다.)
- 접근권한 허용 : 강력한 이름이 아닌 어셈블리에서도 호출가능
상단에 Imports System.Security 추가.
<Assembly: AllowPartiallyTrustedCallers()>
3. 빌드 후 지난 시간에 추가해 둔 gacutil을 이용하여 assembly에 등록한다.
도구 > GAC 등록, 등록이 성공하면 출력창에
"Assembly successfully added to the cache"라는 메시지가 나타난다.
4. 실재로 assembly에 등록 되었는지 확인해 보자
C:\WINDOWS\assembly 에서 등록한 어셈블리를 볼 수 있다.
5. 사용자 컨트롤을 사용한 프로젝트를 열고 이미 참조하였던 것을 삭제하고 다시 참조한 후 빌드한다.
6. 다시 실행파일의 bin/debug 아래로 가보자 이번에는 exe 파일만 보일 것이다. 이제부터 이 실행파일은 C:\WINDOWS\assembly 아래의 어셈블리를 참조하게 되었으므로 만약 사용자 컨트롤이 변경되면 실행파일을 재컴파일 하지 않아도 변경된 내용이 적용되는 것을 확인할 수 있을 것이다.
7. GAC에 등록된 어셈블리를 삭제해 보자
도구>외부도구를 선택하여 외부도구 설정차에서 추가를 선택한다.
제 목 : GAC 삭제
명 령 :C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin\gacutil.exe
인수 : -u입력 후 대상이름 선택(-u $(TargetName))
출력 창 사용 선택 후 적용
사용자 컨트롤 프로젝트에서 위에서 등록한 GAC 삭제를 클릭해 보자
C:\WINDOWS\assembly 에서 등록한 어셈블리가 사라진것을 확인할 수 있다.(이름으로 삭제하므로 버전에 상관없이 이름이 같은 어셈블리를 모두 삭제한다.)
기업100%환급/오라클/자바/스프링/안드로이드/닷넷C#/웹퍼블리싱… | 12-27 | 2244 | ||
[채용예정교육]오라클자바개발잘하는신입뽑기2개월과정,교육전취… | 12-11 | 1614 | ||
53 | [평일주간100%환급]Spring,JAVA,JSP,안드로이드,C#닷넷,SQL,튜닝… | 03-15 | 1406 | |
52 | [주말]C#,ASP.NET마스터 | 01-31 | 1520 | |
51 | [기업100%환급,평일주간]SQL기초에서스키마오브젝트,PLSQL,힌트… | 01-31 | 1754 | |
50 | [기업100%환급]개발자를위한스프링,마이바티스,하이버네이트(스… | 01-31 | 1216 | |
49 | [평일주간,평일야간,주말]Spring,MyBatis,Hibernate개발자과정 | 01-19 | 1508 | |
48 | [평일주간,평일야간,주말]안드로이드개발자과정 | 01-11 | 1341 | |
47 | [평일야간,주말주간,주말야간]JAVA,Network&JSP&Spring,MyBatis,… | 01-03 | 1872 | |
46 | 기업100%환급/오라클/자바/스프링/안드로이드/닷넷C#/웹퍼블리싱… | 12-27 | 2244 | |
45 | [기업100%환급]자바웹개발기초과정(JAVA,JDBC,JSP,Servlet,Aajx,… | 12-19 | 1615 | |
44 | [평일주간야간, 주말]웹퍼블리싱 마스터(HTML5,CSS3,jQUERY,AJAX… | 12-14 | 1586 | |
43 | [채용예정교육]오라클자바개발잘하는신입뽑기2개월과정,교육전취… | 12-11 | 1614 | |
42 | [주말주간]자바&웹,jQUERY,스프링프레임워크 | 12-09 | 1287 | |
41 | [평일야간]닷넷(C#,Network,ADO.NET,ASP.NET)마스터 | 12-01 | 1509 | |
40 | [기업100%환급]자바기초&안드로이드개발자과정(Android전액환급… | 12-01 | 1683 | |
39 | [평일야간,주말]SQL기초에서실무까지(SQL기초,PLSQL,힌트,튜닝) | 12-01 | 1158 |
댓글 없음:
댓글 쓰기