2012-09-10 39 views
24

Có thể tạo đoạn mã hoặc điều gì đó tương tự để tự động hóa quy trình tạo và chèn GUID vào trình chỉnh sửa văn bản trong Visual Studio 2012 không? Tôi thường xuyên cần tạo GUID mới (trình cài đặt WiX chẳng hạn, cũng như khung nội bộ của chính chúng ta).Chèn GUID mới vào Visual Studio 2012

Tôi đã từng sử dụng macro để thực hiện công việc này, tạo GUID mới và sau đó chèn nó vào ActiveDocument hiện tại. Tôi sẽ liên kết macro với Shift-Ctrl G để tôi có thể nhanh chóng chèn một ID mới mà không phải khởi chạy công cụ Tạo hướng dẫn và sao chép từ đó.

Chức năng macro hiện đã bị xóa khỏi Visual Studio 2012 vì vậy tôi cần một phương pháp thay thế, tôi cho rằng có thể thực hiện với Tiện ích mở rộng nhưng tôi không quen với việc phát triển tiện ích mở rộng và cách tiếp cận đó có vẻ hơi khó!

Bất kỳ đề xuất nào sẽ được đánh giá cao, thất bại khi đó một con trỏ ở bất kỳ thông tin nào cần mở rộng để tương tác với cửa sổ văn bản và chèn văn bản. Sau đó tôi có thể tạo một phần mở rộng và đăng nó lên Visual Studio Gallery.

Cảm ơn, Anthony

Chỉnh sửa để thêm - bất kỳ giải pháp được đề xuất sẽ cần phải được "triggerable" từ một phím tắt. Như tôi đã nói ở trên, tôi đã gắn macro vào Ctrl Shift G vì nó dễ nhớ và nhấn khi viết mã.

+0

Delphi 6 đã tích hợp sẵn này qua Ctrl + Alt + Shift + G ... – cja

Trả lời

39

Bạn có thể viết phần mở rộng Visual Studio 2012 để thực hiện việc này!
Nếu bạn chưa bao giờ viết một Trình bổ sung trước đây, đây là cách đơn giản để bạn bắt đầu!

Dưới đây là các bước để tạo kiểu này add-in:

  1. Tạo một New Project trong Visual Studio 2012
  2. Chọn Templates ->Các loại dự án khác ->Mở rộng -> Visual Studio bổ trợ
  3. Đặt tên cho dự án của bạn, nhấp vào OK.
  4. Làm theo các bước của trình hướng dẫn Bổ trợ. Khi được nhắc, hãy chọn hộp cho: "Có, tạo mục menu 'Công cụ'." Tùy chọn, tôi cũng kiểm tra "My Add-in sẽ không bao giờ đưa lên giao diện người dùng phương thức ..."
  5. Kết thúc wizard và thực hiện các mã sau trong Exec (...)

    public void Exec(string commandName, vsCommandExecOption executeOption, ref object varIn, ref object varOut, ref bool handled) 
    { 
        handled = false; 
        if(executeOption == vsCommandExecOption.vsCommandExecOptionDoDefault) 
        { 
         if (commandName == this.GetType().Namespace + ".Connect." + this.GetType().Namespace) 
         { 
          if (_applicationObject.ActiveDocument != null) 
          { 
           TextSelection objSel = (EnvDTE.TextSelection)(_applicationObject.ActiveDocument.Selection); 
    
           objSel.Insert(Guid.NewGuid().ToString()); 
          } 
    
          handled = true; 
          return; 
         } 
        } 
    } 
    
  6. xây dựng các dự án và triển khai AddInName.dll, AddInName.AddInAddInName.xml-c: \ Users \ username \ Documents \ Visual Studio 2012 \ Addins.[Nếu thư mục Addins không tồn tại, tạo ra nó]

  7. Trong Visual Studio 2012, dưới cụ ->Addin quản lý, Đánh dấu vào ô ở bên trái bên cạnh AddInName.
  8. Khởi động lại Visual Studio 2012
  9. Bây giờ, bạn sẽ thấy AddInName được liệt kê trong Công cụ. [có thể với một khuôn mặt cười!]
  10. Khi bạn nhấp vào đây, nó sẽ chèn một GUID mới tại vị trí con trỏ của bạn.
  11. Bản đồ này cho một phím nóng bằng cách điều hướng đến cụ -> Tùy chọn ->Môi trường ->Keyboard, tìm kiếm AddInName, và ràng buộc một phím nóng để nó.

Thì đấy! Hotkey GUID thế hệ và một chút Visual Studio Add-in biết làm thế nào. :)

+0

Đó chính xác là điều tôi muốn biết! Tôi không sợ viết một phần mở rộng, tôi chỉ không chắc chính xác mình cần gì. Các tài liệu cho các phần mở rộng có vẻ là một thiếu lớn (hoặc tôi chỉ không tìm thấy nó). Thêm vào đó có khá nhiều hương vị khác nhau của add-in nó sẽ xuất hiện, một số khó khăn hơn so với những người khác. Cảm ơn sự giúp đỡ! – Anthony

+3

Chỉ trong trường hợp bất cứ ai tìm thấy câu hỏi/câu trả lời này tìm kiếm một điều tương tự, tôi đã tạo một dự án GitHub thực hiện chính xác những gì có trong câu trả lời này. Nó có thể được tải xuống từ https://github.com/antwilliams/VsGuidGenerator hoặc tải xuống tệp nhị phân từ https://github.com/downloads/antwilliams/VsGuidGenerator/VsGuidGenerator-3673852d.zip. Không đảm bảo được cung cấp dưới bất kỳ hình thức, hình dạng hoặc hình thức nào. – Anthony

+9

Đã tồn tại một GuidInserter2 bị gián đoạn. Bạn có thể tìm thấy nó ở đây [GuidInserter] (http://visualstudiogallery.msdn.microsoft.com/270f94f9-4631-4d95-8407-7954acd11bd7?SRC=VSIDE). Bạn có thể sử dụng phím tắt Ctl + K + J – cleftheris

52

ReSharper cho phép bạn chèn một guid mới bằng cách nhập "nguid" và nhấn tab.

Rõ ràng đây là một chút về phía đắt tiền chỉ cho khả năng tạo ra một Guid tuy nhiên ReSharper có nhiều tính năng hữu ích khác có thể đáng xem xét.

+3

Hmmm, tôi có thể tặng một nửa cho câu trả lời này không !? ;) Tôi có một mối quan hệ yêu/ghét với ReSharper, mỗi khi tôi thử nó, tôi đã kết thúc việc cài đặt nó cho việc bận rộn với mã của tôi. Tôi chắc chắn tôi có thể cấu hình các thiết lập để được chính xác những gì tôi muốn nhưng nó luôn luôn có vẻ là quá nhiều nỗ lực! Điều đó sang một bên, điều thú vị là chức năng đó được bao gồm trong ReSharper và tôi sẽ cho nó một lần nữa! Tôi muốn biết nếu có bất kỳ lựa chọn thay thế khác tuy nhiên kể từ khi ReSharper để tạo ra GUID mới là giống như sử dụng một quả bom nhiệt hạch để crack một hạt! – Anthony

+1

Tôi đã nhìn xung quanh và xảy ra để di chuyển đủ xa xuống cho điều này. Kinh ngạc! Không bao giờ có thể nhận ra nó có chức năng này mà không có câu trả lời này. < – al3xnull

+0

Ước gì tôi có thể upvote điều này hai lần. Giải pháp tuyệt vời – Sam

0

Tiện ích mở rộng của tôi SCLAssist có tính năng này. Bạn có thể liên kết "Dán GUID" với ánh xạ khóa. SCLAssist miễn phí.

0

Có vẻ như họ đã mang nó trở lại - trong VS 2015 (Tôi đang sử dụng phiên bản Cộng đồng) có một công cụ Công cụ>Tạo GUID.

Các vấn đề liên quan