다음을 통해 공유


패키지된 앱에 대한 레거시 상황에 맞는 메뉴 지원

상황에 맞는 메뉴는 가장 인기 있고 유용한 셸 확장 중 하나입니다. 이미 파일 탐색기 또는 데스크톱에 있는 경우 별도의 앱을 여는 것과 비교하여 파일 작업을 완료하는 단계 수가 크게 줄어듭니다.

데스크톱 앱이 상황에 맞는 메뉴 처리기 또는 끌어서 놓기 처리기와 같은 셸 확장에 대한 레거시 IContextMenu 인터페이스를 구현하는 경우 앱을 패키지한 후 셸 확장이 작동하지 않을 수 있습니다. 셸이 확장을 인식하고 등록하려면 패키지 매니페스트 파일을 수정해야 합니다. (이 기능은 현재 사용 가능한 Windows 11 빌드 22000 이상에서 사용할 수 있습니다 .Windows 참가자 빌드)

  • shellex dll에 대한 com 네임스페이스 및 windows.comServer 확장 추가

    xmlns:com="http://schemas.microsoft.com/appx/manifest/com/windows10"

    다음은 코드 조각 예제입니다.

    <com:Extension Category="windows.comServer">
        <com:ComServer>
            <com:SurrogateServer DisplayName="<display-name-for-the-com-server>">
                <com:Class Id="<GUID-for-the-com-server>" Path="<path-to-the-com-server-or-dll>" ThreadingModel="STA" />
            </com:SurrogateServer>
        </com:ComServer>
    </com:Extension>
    
  • desktop9 네임스페이스 및 windows.fileExplorerClassicContextMenuHandler 또는 windows.fileExplorerClassicDragDropContextMenuHandler 확장 추가

    xmlns:desktop9="http://schemas.microsoft.com/appx/manifest/desktop/windows10/9"

    다음은 코드 조각 예제입니다.

    <desktop9:Extension Category="windows.fileExplorerClassicContextMenuHandler">
        <desktop9:FileExplorerClassicContextMenuHandler>
            <desktop9:ExtensionHandler Type="*" Clsid="<GUID-for-the-com-server>" />
            <desktop9:ExtensionHandler Type=".txt" Clsid="<GUID-for-the-com-server>" />
            <desktop9:ExtensionHandler Type="Directory" Clsid="<GUID-for-the-com-server>" />
        </desktop9:FileExplorerClassicContextMenuHandler>
    </desktop9:Extension>
    
    <desktop9:Extension Category="windows.fileExplorerClassicDragDropContextMenuHandler">
        <desktop9:FileExplorerClassicDragDropContextMenuHandler>
            <desktop9:ExtensionHandler Type="Directory" Clsid="<GUID-for-the-com-server>" />
            <desktop9:ExtensionHandler Type="Drive" Clsid="<GUID-for-the-com-server>" />
        </desktop9:FileExplorerClassicDragDropContextMenuHandler>
    </desktop9:Extension>
    
  • MaxVersionTested를 10.0.21300.0보다 크게 변경

    다음은 코드 조각 예제입니다.

    <Dependencies>
        <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.21301.0" />
    </Dependencies>
    

참고 항목

레거시 IContextMenu 구현으로 기존 데스크톱 앱을 패키징하는 대신 셸 확장을 구현하는 경우 IExplorerCommand 인터페이스를 구현하고 desktop4:FileExplorerContextMenus를 대신 사용하는 것이 좋습니다. 자세한 내용은 여기를 참조하세요.