다음을 통해 공유


사용자 지정 서버 컨트롤 예제 빌드

업데이트: 2007년 11월

이 항목에서는 사용자 지정 컨트롤 예제를 어셈블리로 컴파일하고 ASP.NET 웹 페이지에서 컨트롤을 사용하는 방법에 대해 설명합니다. 또한 ASP.NET 웹 사이트의 App_Code 폴더를 사용하여 컨트롤을 컴파일하지 않고도 컨트롤 코드를 테스트할 수 있는 방법에 대해서도 설명합니다.

컨트롤 어셈블리 만들기

사용자 지정 컨트롤을 만들고 어셈블리로 컴파일하려면

  1. 사용자 지정 컨트롤 및 관련 클래스에 대한 소스 파일을 저장할 폴더를 만듭니다.

  2. 컴파일할 각 예제에 대한 해당 언어 확장명을 사용하여 텍스트 파일을 만듭니다.

    예를 들어 웹 컨트롤 렌더링 예제에서 MailLink 컨트롤의 C# 코드에 대해 MailLink.cs라는 파일을 만듭니다.

  3. 각 예제의 소스 코드를 복사하여 해당하는 텍스트 파일에 붙여넣고 파일을 저장합니다.

  4. 소스 코드 폴더에서 다음 명령을 실행하여 컨트롤 및 관련 클래스를 어셈블리로 컴파일합니다.

    csc /t:library /out:Samples.AspNet.CS.Controls.dll /r:System.dll 
    /r:System.Web.dll /r:System.Design.dll *.cs
    
    vbc /t:library /out:Samples.AspNet.VB.Controls.dll /r:System.dll 
    /r:System.Web.dll /r:System.Design.dll *.vb
    

    /t:library 컴파일러 옵션을 사용하면 컴파일러에서 실행 어셈블리 대신 라이브러리를 만듭니다. /out 옵션은 어셈블리에 사용할 이름을 제공하고 /r 옵션은 어셈블리에 링크된 어셈블리를 나열합니다.

    참고:

    컴파일러 명령을 실행할 수 없는 경우에는 해당 명령을 실행하기 전에 Windows PATH 변수에 .NET Framework 설치 경로를 추가해야 합니다. Windows에서 내 컴퓨터를 마우스 오른쪽 단추로 클릭하고 속성, 고급 탭, 환경 변수 단추를 차례로 클릭합니다. 그런 다음 시스템 변수 목록에서 Path 변수를 두 번 클릭하고 변수 값 텍스트 상자에서 기존 값의 끝에 세미콜론(;)을 추가한 후 .NET Framework 설치 경로를 입력합니다. 일반적으로 .NET Framework는 Windows 설치 폴더에서 \Microsoft.NET\Framework\versionNumber에 설치됩니다.

  5. 소스 코드 폴더에 새 소스 파일을 추가하거나 기존 파일을 변경할 때마다 4단계의 컴파일 명령을 다시 실행합니다.

ASP.NET 웹 사이트 만들기

ASP.NET 웹 사이트를 만들려면

  1. IIS(인터넷 정보 서비스) 또는 다른 도구를 사용하여 ASP.NET 웹 사이트를 만듭니다.

  2. IIS 가상 디렉터리를 만들고 구성하는 데 대한 내용은 방법: IIS 5.0 및 6.0에서 가상 디렉터리 만들기 및 구성을 참조하십시오.

    참고:

    IIS를 사용하려면 .NET Framework를 설치하기 전에 IIS를 설치하십시오.

  3. 웹 사이트의 루트 폴더 아래에 Bin 폴더를 만듭니다.

  4. 이전 단계에서 만든 어셈블리를 웹 사이트의 Bin 폴더에 복사합니다.

    참고:

    컨트롤 어셈블리를 다시 컴파일하는 경우(이전 단원의 마지막 단계) 새 어셈블리를 웹 사이트의 Bin 폴더에 다시 복사해야 합니다.

  5. 웹 사이트의 루트 폴더에 Web.config라는 텍스트 파일을 만들고 다음 XML을 Web.config 파일에 추가한 후 파일을 저장합니다.

    <?xml version="1.0"?>
    <configuration>
      <system.web>
        <compilation debug="true"/>
        <pages>
          <controls>
            <add tagPrefix="aspSample" 
              namespace="Samples.AspNet.CS.Controls" 
              assembly="Samples.AspNet.CS.Controls" >
            </add>
          </controls>
        </pages>
      </system.web>
    </configuration>
    
    <?xml version="1.0"?>
    <configuration>
      <system.web>
        <compilation debug="true"/>
        <pages>
          <controls>
            <add tagPrefix="aspSample" 
              namespace="Samples.AspNet.VB.Controls" 
              assembly="Samples.AspNet.VB.Controls" >
            </add>
          </controls>
        </pages>
      </system.web>
    </configuration>
    
  6. 테스트할 각 예제에 대해 웹 사이트의 루트 폴더에 확장명이 .aspx인 텍스트 파일을 추가합니다.

    예를 들어 웹 컨트롤 렌더링 예제에 제공된 MailLink 컨트롤의 테스트 페이지에 대해 MailLinkTest.aspx라는 파일을 만듭니다.

  7. 각 예제 테스트 페이지의 소스 코드를 복사하여 해당하는 .aspx 파일에 붙여넣고 파일을 저장합니다.

  8. 웹 브라우저에서 .aspx 페이지를 요청합니다.

    예를 들어 ServerControls라는 웹 사이트에 MailLinkTest.aspx 페이지가 포함되어 있는 경우 브라우저의 주소 표시줄에 다음 URL을 입력합니다.

    https://localhost/ServerControls/MailLinkTest.aspx
    

App_Code 폴더를 사용하여 컨트롤 테스트

ASP.NET 2.0의 동적 컴파일 기능을 사용하면 컨트롤을 어셈블리로 직접 컴파일하지 않고도 컨트롤을 테스트할 수 있습니다.

컨트롤을 App_Code 폴더에 배치하려면

  1. 웹 사이트의 루트 폴더 아래에 App_Code 폴더를 만듭니다.

  2. 컨트롤 및 관련 클래스에 대한 소스 파일을 App_Code 폴더에 복사합니다.

  3. 이전에 컨트롤의 어셈블리를 Bin 폴더에 추가한 경우에는 이 어셈블리를 삭제합니다.

    참고:

    컨트롤을 어셈블리로 미리 컴파일하여 이 어셈블리를 Bin 폴더에 추가하거나 컨트롤의 소스 파일을 App_Code 폴더에 추가할 수 있습니다. 컨트롤을 두 폴더에 모두 추가하면 페이지 파서가 페이지에서 이 컨트롤에 대한 참조를 확인할 수 없으므로 오류가 발생합니다.

  4. Web.config 파일에서 controls 섹션의 엔트리를 아래 강조 표시된 엔트리로 변경하여 컨트롤의 네임스페이스를 태그 접두사에 매핑합니다.

    <controls>
      <add tagPrefix="aspSample"     namespace="Samples.AspNet.CS.Controls">..</add>
    </controls>
    
    <controls>
      <add tagPrefix="aspSample"     namespace="Samples.AspNet.VB.Controls">..</add>
    </controls>
    

    자세한 내용은 @ Register를 참조하십시오.

  5. 웹 브라우저에서 .aspx 페이지를 요청합니다.

웹 컨트롤 컬렉션 속성 예제에서 QuickContacts 및 ContactCollectionEditor 클래스의 소스 파일을 App_Code 폴더에 추가하는 경우 Web.config 파일의 compilation 섹션에서 System.Design 어셈블리에 대한 참조도 추가해야 합니다. 이 참조에는 System.Design 어셈블리의 정규화된 어셈블리 이름이 필요합니다. 다음과 같은 구문을 사용하여 Windows SDK(소프트웨어 개발 키트)에 제공되는 전역 어셈블리 캐시 도구(Gacutil.exe)를 실행하면 정규화된 이름에 필요한 정보를 가져올 수 있습니다.

gacutil /l System.Design
참고:

전역 어셈블리 캐시 도구(Gacutil.exe)를 명령줄에서 실행하려면 컴퓨터의 Windows 환경 변수 PATH에 .NET Framework 설치 경로가 포함되어야 합니다. Windows에서 내 컴퓨터를 마우스 오른쪽 단추로 클릭하고 속성, 고급 탭, 환경 변수 단추를 차례로 클릭합니다. 그런 다음 시스템 변수 목록에서 Path 변수를 두 번 클릭하고 변수 값 텍스트 상자에서 기존 값의 끝에 세미콜론(;)을 추가한 후 .NET Framework 설치 경로를 입력합니다. 일반적으로 .NET Framework는 Windows 설치 폴더에서 \Microsoft.NET\Framework\versionNumber에 설치됩니다.

Web.config 파일의 compilation 섹션에 추가하는 태그는 다음 예제에서 강조 표시된 섹션과 비슷합니다. 그러나 Version 및 PublicKeyToken 특성의 값을 Gacutil.exe 도구에서 반환하는 값으로 바꿔야 합니다.

<compilation >
  <assemblies>    <add assembly="System.Design, Version=2.0.3600.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />    </assemblies>
</compilation>
참고:

통합 개발 환경에서 작업하는 경우에는 디자이너를 사용하여 더 간단한 방법으로 Web.config 파일에 어셈블리 참조를 추가할 수 있습니다. 예를 들어 Visual Studio 2005를 사용하는 경우 솔루션 탐색기에서 웹 사이트 이름을 마우스 오른쪽 단추로 클릭하고 바로 가기 메뉴에서 참조 추가를 클릭하면 추가할 어셈블리를 선택할 수 있는 대화 상자를 사용할 수 있습니다. 이 대화 상자에서 어셈블리를 선택하면 관련된 엔트리가 Web.config 파일에 자동으로 추가됩니다.

참고 항목

작업

연습: 사용자 지정 서버 컨트롤 개발 및 사용

기타 리소스

사용자 지정 ASP.NET 서버 컨트롤 개발