2014년 11월 25일 화요일

[예제]사용자 컨트롤 생성 및 사용2 - 공유 어셈블리 생성[닷넷C#교육/ADO.NET강좌/ASP.NET교육잘하는곳/C#,ASP.NET교육추천/닷넷실무교육/.NET,C#/ADO.NET교육/닷넷학원/ASP.NET실무교육]

지난 시간에 생성한 사용자 컨트롤은 사설 어셈블리였다. 
이번시간에는 그 컨트롤을 공유 어셈블리로 만들어 보겠다. 

먼저 사용자 컨트롤을 사용한 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%환급,개발자전문]빅데이터/SQL/자바/스프링/안드로이드/닷…오라클자바…12-272614
 [채용확정무료교육]오라클자바개발잘하는신입뽑기2개월과정,교육…오라클자바…12-111890
53 [평일100%환급7건]Spring,자바&JSP,안드로이드,웹퍼블리싱,C#닷… 오라클자바…03-151706
52 [주말]C#,ASP.NET마스터 오라클자바…01-311813
51 [기업100%환급,평일주간]SQL기초에서스키마오브젝트,PLSQL,힌트… 오라클자바…01-312660
50 [평일주간야간,주말]C기본&자료구조,알고리즘 오라클자바…01-311422
49 [평일주간,평일야간,주말]Spring,MyBatis,Hibernate개발자과정-… 오라클자바…01-191741
48 [평일야간,주말]안드로이드개발자과정(Android기초실무) 오라클자바…01-111631
47 [평일야간,주말주간야간]JAVA,Network&JSP&Spring,MyBatis,Hiber… 오라클자바…01-032150
46 [100%환급,개발자전문]빅데이터/SQL/자바/스프링/안드로이드/닷… 오라클자바…12-272614
45 [평일주간]NoSQL,MongoDB,빅데이터기초과정 오라클자바…12-191856
44 [평일주간야간, 주말]웹퍼블리싱 마스터(HTML5,CSS3,jQUERY,AJAX… 오라클자바…12-141826
43 [채용확정무료교육]오라클자바개발잘하는신입뽑기2개월과정,교육… 오라클자바…12-111890
42 [평일주간]빅데이터하둡기초과정(BigData Hadoop) 오라클자바…12-091483
41 [평일야간]닷넷(C#,Network,ADO.NET,ASP.NET)마스터 오라클자바…12-011715
40 [기업100%환급]오라클&자바웹스프링신입과정3주(SQL,JAVA,JSP,Se… 오라클자바…12-011887
39 [평일야간,주말]SQL기초에서실무까지(SQL기초,PLSQL,힌트,튜닝) 오라클자바…12-011359

댓글 없음:

댓글 쓰기