2012-12-03 87 views
6

Tôi biết rằng tôi có thể sắp xếp đầu ra xây dựng của các bản dựng đa lõi của mình trong Visual Studio bằng cách sử dụng mục Xây dựng Đơn hàng trong cửa sổ Đầu ra (như được mô tả here).Làm cách nào để sắp xếp đầu ra xây dựng của Visual Studio theo Lệnh xây dựng theo mặc định?

Nhưng một khi tôi đã làm điều đó và nhấn F7 một lần nữa, tùy chọn chuyển mạch trở lại Build và tôi phải chuyển về xây dựng theo thứ tự một lần nữa.

Có cách nào để đặt Thứ tự xây dựng làm cài đặt mặc định trong cửa sổ Đầu ra không?

tìm kiếm một chút cho tôi thấy rằng câu hỏi này đã được hỏi nhiều lần nhưng không bao giờ trả lời:


Edit:
Các answer được đưa ra bởi Simon làm việc cho tôi (hoặc ít nhất nó chỉ cho tôi đúng hướng), nhưng tôi không thể chỉ đơn giản là sao chép mã của mình và chèn nó vào dự án MyMacros của tôi. Thay vào đó, tôi phải tạo ra các handler cho việc xây dựng các sự kiện chính xác như mô tả here:

  1. Trên Lớp Xem cửa sổ thám hiểm, trong Macros IDE, kích đúp vào EnvironmentEvents nút để hiển thị nó dưới dạng EnvironmentEvents tab và trình đơn thả xuống trên ngăn trình chỉnh sửa macro.

  2. Từ EnvironmentEvents trình đơn thả xuống, chọn một loại sự kiện, chẳng hạn như TaskListEvents. Hộp kiểm Tuyên bố hiện được điền với Danh sách nhiệm vụ sự kiện sẵn có.

  3. Trên Khai báo đơn thả xuống, chọn một sự kiện, chẳng hạn như TaskAdded, để thêm thủ tục sự kiện của mình cho các mô-đun.

Sự kiện được chèn vào macro của bạn và bây giờ bạn có thể thêm mã vào quy trình sự kiện.

Nếu không, trình xử lý sự kiện sẽ không được gọi.

Trả lời

2

Bạn có thể viết một Studio vĩ mô Visual, một cái gì đó như thế này:

Dim WithEvents MyBuildEvents as BuildEvents 

Private Sub BuildEvents_OnBuildBegin(ByVal Scope As EnvDTE.vsBuildScope, ByVal Action As EnvDTE.vsBuildAction) Handles MyBuildEvents.OnBuildBegin 
    OpenBuildOrderOutputPane() 
End Sub 

Private Sub OpenBuildOrderOutputPane() 
    Dim window As Window = DTE.Windows.Item(EnvDTE.Constants.vsWindowKindOutput) ' Get Output Window 
    Dim output As OutputWindow = CType(window.Object, OutputWindow) 
    For Each pane As OutputWindowPane In output.OutputWindowPanes ' Browse panes 
     If (pane.Guid = "{2032B126-7C8D-48AD-8026-0E0348004FC0}") Then ' Build Order guid 
      pane.Activate() 
     End If 
    Next 
    window.Activate() 
End Sub 

Bạn cần dán mã này trong MyMacros, EnvironmentEvents module.

+0

phải sửa đổi câu trả lời của bạn để có được câu trả lời. – eckes

+0

Có thể vì bạn đang chạy khỏi VS 2005. Thay đổi này không cần thiết trên VS 2010 (có một số mã được tạo tự động thực hiện) –

+0

yep. Với VS2005, tôi ** phải tạo bộ xử lý sự kiện xây dựng như được mô tả ở đây: http://msdn.microsoft.com/en-us/library/0b27f9kz(v=vs.80).aspx Họ dựa vào việc tạo ra mã, nếu không các trình xử lý không được gọi ... – eckes