Việc đính kèm dịch vụ nên hoạt động, vì vậy tôi không chắc chắn lý do tại sao bạn không thể. Thay vào đó, chèn dòng sau vào điểm nhập ứng dụng cho dịch vụ Windows của bạn (hoặc phương thức OnStart()), biên dịch trong chế độ gỡ lỗi và khởi động dịch vụ.
System.Diagnostics.Debugger.Break();
Khi khởi động dịch vụ, bạn sẽ được nhắc gỡ lỗi quy trình. Chọn trình gỡ lỗi Visual Studio 2008 và quá trình sẽ tải và dừng lại tại điểm ngắt có lập trình của bạn. Nhấn F5 để bắt đầu chạy lại.
EDIT:
Hãy nói rằng bạn đã xây dựng các dịch vụ (chế độ phát hành hoặc debug mode - nó không quan trọng) và sử dụng installutil để cài đặt các dịch vụ, nhưng bạn chưa bắt đầu nó được nêu ra. Miễn là dịch vụ là không phải đang chạy, bạn có thể tiếp tục thực hiện thay đổi mã và biên dịch lại. Khi bạn bắt đầu dịch vụ, dịch vụ của bạn sẽ phản ánh những thay đổi mã mới nhất của bạn. Nếu dịch vụ là đang chạy, bạn sẽ không thể biên dịch hoàn toàn dịch vụ vì (các) tệp exe đang được sử dụng và không thể thay thế được. Rõ ràng, chỉ cần dừng dịch vụ, biên dịch lại và sau đó khởi động lại dịch vụ. Vấn đề là: Bạn không phải gỡ cài đặt dịch vụ để sửa đổi mã. Chỉ cần dừng lại, thay đổi mã, biên dịch lại và bắt đầu lại.
Để gỡ lỗi trong chế độ gỡ lỗi so với chế độ phát hành, tôi không biết nếu đó là lý do bạn không thể đính kèm vào quy trình.Tôi biết rằng có thể gỡ lỗi các phiên bản phát hành, nhưng tôi sẽ không khuyên bạn nên điều này đơn giản chỉ vì nếu tối ưu hóa được bật, bạn có thể gặp sự cố khi duyệt mã. Chúng tôi chỉ sử dụng gỡ lỗi chế độ phát hành như một phương sách cuối cùng.
Theo mặc định, khi bạn xây dựng một ứng dụng Visual Studio trong chế độ gỡ lỗi, nó được đặt trong thư mục con bin \ Debug của dự án của bạn. Khi bạn xây dựng trong chế độ phát hành, tệp thực thi được đặt trong thư mục con bin \ Release. Khi bạn sử dụng installutil để cài đặt dịch vụ của bạn, điều duy nhất quan trọng là nơi dịch vụ cư trú. Trong trường hợp của bạn, tôi khuyên bạn nên bỏ cài đặt phiên bản chế độ phát hành dịch vụ của bạn (installutil /u c:\myapp\myapp\bin\release\myapp.exe
), đặt điểm ngắt có lập trình trong, xây dựng phiên bản gỡ lỗi và sau đó sử dụng installutil để cài đặt phiên bản gỡ lỗi (từ thư mục bin \ Debug) .
Rất tiếc, điều này đã có từ lâu. Tôi hy vọng điều đó rõ ràng.
Tôi đã cập nhật phản hồi dựa trên câu hỏi của bạn. –