2016-12-06 10 views
-1

확장 프로그램에서 작업 중이며 사용자 지정 명령을 삭제 한 다음 다시 추가해야했습니다. 이제 확장 프로그램을 실행하려고하면 오류가 발생합니다.Visual Studio Extension - 이미 메뉴 명령에 대한 명령 처리기가 있습니다.

이미 메뉴 명령에 대한 명령 처리기가 있습니다.

이전에이 문제가 발생 했습니까? 어떤 아이디어를 수정하는 방법? 새로운 GUID를 생성하고 commandId를 변경하려고 시도했지만 행운은 없습니다.

오류 출력 형식 'System.ArgumentException'형식의 예외가 System.Design.dll에 을 발생했지만 사용자 코드에서 처리되지 않은

추가 정보 : 메뉴 명령 처리기가 이미 있습니다 명령 '4fd442a6-1a00-47ee-b98d-f11b0faafbe2 : 256'. command.cs 파일에서

<GuidSymbol name="guidVSProximityMenuPackageCmdSet3" value="{4FD442A6-1A00-47EE-B98D-F11B0FAAFBE2}"> 

    <IDSymbol name="ProximityProjectExplorerGroup" value="4128" /> 
    <IDSymbol value="256" name="cmdidGetNugetVersionCommand" /> 

</GuidSymbol> 

: 다음 vsct 파일에서

예외가합니다 (command.cs 파일에있는)이 방법

에서 슬로우

/// <summary> 
    /// Command ID. 
    /// </summary> 
    public const int CommandId = 256; 

    /// <summary> 
    /// Command menu group (command set GUID). 
    /// </summary> 
    public static readonly Guid CommandSet = new Guid("4FD442A6-1A00-47EE-B98D-F11B0FAAFBE2"); 

/// <summary> 
    /// Initializes a new instance of the <see cref="GetNugetVersionCommand"/> class. 
    /// Adds our command handlers for menu (commands must exist in the command table file) 
    /// </summary> 
    /// <param name="package">Owner package, not null.</param> 
    private GetNugetVersionCommand(Package package) 
    { 
     if (package == null) 
     { 
      throw new ArgumentNullException("package"); 
     } 

     this.package = package; 

     OleMenuCommandService commandService = this.ServiceProvider.GetService(typeof(IMenuCommandService)) as OleMenuCommandService; 
     if (commandService != null) 
     { 
      var menuCommandID = new CommandID(CommandSet, CommandId); 
      var menuItem = new MenuCommand(this.MenuItemCallback, menuCommandID); 
      commandService.AddCommand(menuItem); 
     } 
    } 

commandService.AddCommand (menuItem); Visual Studio의 메뉴에서 다른 명령을 호출하려고하면

도움을 주셔서 다시 한 번 감사드립니다!

+1

코드 샘플을 추가해야한다고 생각합니다. 그렇지 않으면 전혀 재생산되지 않습니다. – rbr94

+1

아무런 정보없이 도움을받는 것은 불가능합니다. 대부분 기존 명령을 제거하지 않은 것 같습니다. 오류 코드를 확인 했습니까? 결과? 최소한 명령어를 제거하기 위해 사용하는 코드를 게시하십시오 –

+0

코드에 따르면, 새로운 프로젝트를 만들고 관련된 코드를 새 프로젝트에 복사하십시오. 새로운 프로젝트에는 새로운 Guid를 사용합니다. 그것이 작동하는지 확인하십시오. –

답변

1

실험 인스턴스 재설정을 시도 했습니까? 시작 메뉴에 Reset the Visual Studio 2015 Experimental Instance이라는 배치 파일이 있어야합니다. 이것을 실행하면 모든 것이 기본 상태로 다시 설정됩니다. 여기에서 일어난 일은 확장 패키지의 식별자를 변경했다는 것입니다. 새로운 패키지가 추가하려고하는 명령에 대한 처리기를 계속 제공하는 이전 패키지와 함께 설치되고 있습니다.