다음을 통해 공유


.NET Framework 4로 마이그레이션하는 Outlook 프로젝트에서 양식 영역 업데이트

양식 영역이 있는 Outlook 추가 기능 프로젝트의 대상 프레임워크를 .NET Framework 4로 변경하면 생성된 양식 영역 코드와 런타임에 특정 양식 영역 클래스를 인스턴스화하는 코드의 일부를 변경해야 합니다.

생성된 양식 영역 코드 업데이트

프로젝트의 대상 프레임워크를 .NET Framework 4로 변경하면 생성된 양식 영역 코드를 변경해야 합니다. Visual Studio에서 디자인한 양식 영역과 Outlook에서 가져온 양식 영역에 대해 변경하는 내용이 다릅니다. 이러한 양식 영역 형식 간 차이점에 대한 자세한 내용은 Outlook 양식 영역 만들기를 참조하십시오.

Visual Studio에서 디자인한 양식 영역에 대해 생성된 코드를 업데이트하려면

  1. 코드 편집기에서 양식 영역 코드 숨김 파일을 엽니다. 이 파일의 이름은 YourFormRegion.Designer.cs 또는 YourFormRegion.Designer.vb입니다. Visual Basic 프로젝트에서 이 파일을 보려면 솔루션 탐색기에서 모든 파일 표시 단추를 클릭합니다.

  2. Microsoft.Office.Tools.Outlook.FormRegionControl 대신 FormRegionBase에서 파생되도록 양식 영역 클래스의 선언을 수정합니다.

  3. 다음 코드 예제와 같이 양식 영역 클래스의 생성자를 수정합니다.

    다음 코드 예제에서는 .NET Framework 3.5를 대상으로 하는 프로젝트에 있는 양식 영역 클래스의 생성자를 보여 줍니다.

    Public Sub New(ByVal formRegion As Microsoft.Office.Interop.Outlook.FormRegion)
        MyBase.New(formRegion)
        Me.InitializeComponent()
    End Sub
    
    public FormRegion1(Microsoft.Office.Interop.Outlook.FormRegion formRegion)
        : base(formRegion)
    {
        this.InitializeComponent();
    }
    

    다음 코드 예제에서는 .NET Framework 4를 대상으로 하는 프로젝트에 있는 양식 영역 클래스의 생성자를 보여 줍니다.

    Public Sub New(ByVal formRegion As Microsoft.Office.Interop.Outlook.FormRegion)
        MyBase.New(Globals.Factory, formRegion)
        Me.InitializeComponent()
    End Sub
    
    public FormRegion1(Microsoft.Office.Interop.Outlook.FormRegion formRegion)
        : base(Globals.Factory, formRegion)
    {
        this.InitializeComponent();
    }
    
  4. 아래와 같이 InitializeManifest 메서드의 서명을 수정합니다. 메서드의 코드는 수정하지 않도록 합니다. 이 코드는 디자이너에 적용한 양식 영역 설정을 나타냅니다. Visual C# 프로젝트에서 이 메서드를 보려면 Form Region Designer generated code라는 영역을 확장해야 합니다.

    다음 코드 예제에서는 .NET Framework 3.5를 대상으로 하는 프로젝트에 있는 InitializeManifest 메서드의 서명을 보여 줍니다.

    Private Shared Sub InitializeManifest(ByVal manifest As Microsoft.Office.Tools.Outlook.FormRegionManifest)
    
        ' Do not change code in this method.
    End Sub
    
    private static void InitializeManifest(Microsoft.Office.Tools.Outlook.FormRegionManifest manifest)
    {
        // Do not change code in this method.
    }
    

    다음 코드 예제에서는 .NET Framework 4를 대상으로 하는 프로젝트에 있는 InitializeManifest 메서드의 서명을 보여 줍니다.

    Private Shared Sub InitializeManifest(ByVal manifest As Microsoft.Office.Tools.Outlook.FormRegionManifest, 
        ByVal factory As Microsoft.Office.Tools.Outlook.Factory)
    
        ' Do not change code in this method.
    End Sub
    
    private static void InitializeManifest(Microsoft.Office.Tools.Outlook.FormRegionManifest manifest, 
        Microsoft.Office.Tools.Outlook.Factory factory)
    {
        // Do not change code in this method.
    }
    
  5. 프로젝트에 새 Outlook 양식 영역 항목을 추가합니다. 새 양식 영역의 코드 숨김 파일을 열고 이 파일에서 YourNewFormRegionFactory 및 WindowFormRegionCollection 클래스를 찾아 클립보드에 복사합니다.

  6. 프로젝트에 추가한 새 양식 영역을 삭제합니다.

  7. 대상이 변경된 프로젝트에서 작업하기 위해 업데이트하려는 양식 영역의 코드 숨김 파일에서 YourOriginalFormRegionFactory 및 WindowFormRegionCollection 클래스를 찾아 새 양식 영역에서 복사한 코드로 바꿉니다.

  8. YourNewFormRegionFactory 및 WindowFormRegionCollection 클래스에서 YourNewFormRegion 클래스에 대한 모든 참조를 검색하고 각 참조를 대신 YourOriginalFormRegion 클래스로 변경합니다. 예를 들어 업데이트하려는 양식 영역의 이름이 SalesDataFormRegion이고 5단계에서 만든 새 양식 영역의 이름이 FormRegion1인 경우 FormRegion1의 모든 참조를 SalesDataFormRegion으로 변경합니다.

Outlook에서 가져온 양식 영역에 대해 생성된 코드를 업데이트하려면

  1. 코드 편집기에서 양식 영역 코드 숨김 파일을 엽니다. 이 파일의 이름은 YourFormRegion.Designer.cs 또는 YourFormRegion.Designer.vb입니다. Visual Basic 프로젝트에서 이 파일을 보려면 솔루션 탐색기에서 모든 파일 표시 단추를 클릭합니다.

  2. Microsoft.Office.Tools.Outlook.ImportedFormRegion 대신 ImportedFormRegionBase에서 파생되도록 양식 영역 클래스의 선언을 수정합니다.

  3. 다음 코드 예제와 같이 양식 영역 클래스의 생성자를 수정합니다.

    다음 코드 예제에서는 .NET Framework 3.5를 대상으로 하는 프로젝트에 있는 양식 영역 클래스의 생성자를 보여 줍니다.

    Public Sub New(ByVal formRegion As Microsoft.Office.Interop.Outlook.FormRegion)
        MyBase.New(formRegion)
    End Sub
    
    public ImportedFormRegion1(Microsoft.Office.Interop.Outlook.FormRegion formRegion)
        : base(formRegion)
    {
        this.FormRegionShowing += new System.EventHandler(this.TaskFormRegion_FormRegionShowing);
        this.FormRegionClosed += new System.EventHandler(this.TaskFormRegion_FormRegionClosed);
    }
    

    다음 코드 예제에서는 .NET Framework 4를 대상으로 하는 프로젝트에 있는 양식 영역 클래스 생성자의 서명을 보여 줍니다.

    Public Sub New(ByVal formRegion As Microsoft.Office.Interop.Outlook.FormRegion)
        MyBase.New(Globals.Factory, formRegion)
    End Sub
    
    public ImportedFormRegion1(Microsoft.Office.Interop.Outlook.FormRegion formRegion)
        : base(Globals.Factory, formRegion)
    {
        this.FormRegionShowing += new System.EventHandler(this.TaskFormRegion_FormRegionShowing);
        this.FormRegionClosed += new System.EventHandler(this.TaskFormRegion_FormRegionClosed);
    }
    
  4. 양식 영역 클래스의 컨트롤을 초기화하는 InitializeControls 메서드의 각 코드 줄의 코드를 아래와 같이 수정합니다.

    다음 코드 예제에서는 .NET Framework 3.5를 대상으로 하는 프로젝트에서 컨트롤을 초기화하는 방법을 보여 줍니다. 이 코드에서 GetFormRegionControl 메서드에는 반환되는 컨트롤의 형식을 지정하는 형식 매개 변수가 있습니다.

    Me.olkTextBox1 = Me.GetFormRegionControl(Of Microsoft.Office.Interop.Outlook.OlkTextBox)("OlkTextBox1")
    
    this.olkTextBox1 = this.GetFormRegionControl<Microsoft.Office.Interop.Outlook.OlkTextBox>("OlkTextBox1");
    

    다음 코드 예제에서는 .NET Framework 4를 대상으로 하는 프로젝트에서 컨트롤을 초기화하는 방법을 보여 줍니다. 이 코드에서 GetFormRegionControl 메서드에는 형식 매개 변수가 없습니다. 반환 값을 초기화하려는 컨트롤의 형식으로 캐스팅해야 합니다.

    Me.olkTextBox1 = CType(GetFormRegionControl("OlkTextBox1"), Microsoft.Office.Interop.Outlook.OlkTextBox)
    
    this.olkTextBox1 = (Microsoft.Office.Interop.Outlook.OlkTextBox)GetFormRegionControl("OlkTextBox1");
    
  5. 프로젝트에 새 Outlook 양식 영역 항목을 추가합니다. 새 양식 영역의 코드 숨김 파일을 열고 이 파일에서 YourNewFormRegionFactory 및 WindowFormRegionCollection 클래스를 찾아 클립보드에 복사합니다.

  6. 프로젝트에 추가한 새 양식 영역을 삭제합니다.

  7. 대상이 변경된 프로젝트에서 작업하기 위해 업데이트하려는 양식 영역의 코드 숨김 파일에서 YourOriginalFormRegionFactory 및 WindowFormRegionCollection 클래스를 찾아 새 양식 영역에서 복사한 코드로 바꿉니다.

  8. YourNewFormRegionFactory 및 WindowFormRegionCollection 클래스에서 YourNewFormRegion 클래스에 대한 모든 참조를 검색하고 각 참조를 대신 YourOriginalFormRegion 클래스로 변경합니다. 예를 들어 업데이트하려는 양식 영역의 이름이 SalesDataFormRegion이고 5단계에서 만든 새 양식 영역의 이름이 FormRegion1인 경우 FormRegion1의 모든 참조를 SalesDataFormRegion으로 변경합니다.

양식 영역 클래스 인스턴스화

특정 양식 영역 클래스를 동적으로 인스턴스화하는 코드를 수정해야 합니다. .NET Framework 3.5를 대상으로 하는 프로젝트에서 Microsoft.Office.Tools.Outlook.FormRegionManifest와 같은 양식 영역 클래스를 직접 인스턴스화할 수 있습니다. .NET Framework 4를 대상으로 하는 프로젝트에서 이러한 클래스는 직접 인스턴스화할 수 없는 인터페이스입니다.

프로젝트의 대상 프레임워크를 .NET Framework 4로 변경한 경우 Globals.Factory 속성이 제공하는 메서드를 사용하여 인터페이스를 인스턴스화해야 합니다. Globals.Factory 속성에 대한 자세한 내용은 Office 프로젝트의 개체에 전역 액세스를 참조하십시오.

다음 표에서는 양식 영역 형식 및 .NET Framework 4를 대상으로 하는 프로젝트에서 형식을 인스턴스화하는 데 사용할 메서드를 보여 줍니다.

형식

사용할 팩터리 메서드

FormRegionCustomAction

CreateFormRegionCustomAction()

FormRegionInitializingEventArgs

CreateFormRegionInitializingEventArgs

FormRegionManifest

CreateFormRegionManifest

참고 항목

개념

.NET Framework 4로 Office 솔루션 마이그레이션

기타 리소스

Outlook 양식 영역 만들기