2012-12-13 29 views
7

tôi sử dụng VS2010 và Addin, sử dụng DTE.ExecuteCommand và lệnh như xây dựng, Build.Cancel, Build.RebuildSolution vvNhận danh sách đầy đủ các lệnh có sẵn cho DTE.ExecuteCommand

Bạn có thể nhận được một lệnh với DTE. Commands.Item ("xxx") và đoán nếu nó có sẵn với Command.IsAvailable. Danh sách các lệnh nằm trong cửa sổ Tools, Options, Environment, Keyboard.

Quá, như bạn biết DTE.ExecuteCommand nhận hai chuỗi làm tham số.

Đầu tiên là tên của lệnh (ví dụ: Action.CreateNewShortcut) và thứ hai là các đối số mà lệnh đó thực hiện.

Vấn đề là một số lệnh đòi hỏi một số biến của tham số và tôi không biết trật tự vv

Ví dụ tôi đoán Action.CreateNewShortcut cần ít nhất hai đối số: hành động được chạy khi phím tắt được thực thi (Build.RebuildSolution) và phím tắt (Alt + O).

Có hơn 4k lệnh trong VS. nhưng Microsoft không có tài liệu chính thức về nó, tôi nghĩ vậy.

Nó sẽ rất hữu ích bất kỳ tài liệu chính thức với danh sách đầy đủ các lệnh có sẵn cho DTE.ExecuteCommand

Bất kỳ lời đề nghị?

Trả lời

6

Bạn có thể sử dụng cửa sổ ngay lập tức để thực hiện. Chỉ cần gõ '>' và bắt đầu gõ lệnh.

8

Một danh sách các lệnh có thể được kiểm tra bằng cách làm theo thủ tục này:

  • Mở Visual Studio Options Dialog Box
  • Chọn Môi trường/Bàn phím trang
  • Bạn có thể tìm kiếm lệnh cụ thể trong các "Hiển thị các lệnh có chứa:" hộp, hoặc chỉ cần cuộn danh sách đằng sau nó.
4

Câu hỏi hơi cũ, nhưng tôi đã chạy vào cùng một thời gian gần đây. Tôi đã sử dụng bộ sưu tập Lệnh từ EnvDTE.DTE (here), có thể được truy xuất trong một vài dòng vỏ nguồn. Như bạn đã đề cập, danh sách rất dài và bạn có thể muốn lọc đầu ra.

# Get Visual Studio 2015 type 
# -- find other version in registry HKEY_CLASSES_ROOT\VisualStudio.DTE.x.x 
$type = [System.Type]::GetTypeFromProgID("VisualStudio.DTE.14.0") 
# Create an instance of EnvDTE.DTE - actually launches a devenv.exe process 
$dte = [System.Activator]::CreateInstance($type,$true) 
# list of Commands is output simply when typing : Can be very long 
$dte.Commands 
# Will output the name of the command, its GUID and other attributes 
# Close process when done 
$dte.Quit() 
+0

Điều này có thể được thực hiện ngay thông qua bảng điều khiển trình quản lý gói trong VS, vì nó cung cấp phiên bản $ dte mà không phải hủy bỏ đăng ký đúng loại. Hoạt động vào năm 2015 và 2017. – StingyJack

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