Trình đơn Refactor bị thiếu trong Visual Studio 2015


87

Tôi gặp sự cố khi tìm menu ngữ cảnh nhấp chuột phải trong Visual Studio 2015. Tôi biết rằng không có gì sai với dự án của tôi hoặc tệp tôi đang làm việc. Tôi có thể tìm thấy trình đơn tái cấu trúc ngữ cảnh nhấp chuột phải trong Visual Studio 2013. Tuy nhiên, trong Visual Studio 2015 không có trình đơn ngữ cảnh tái cấu trúc trong trình đơn ngữ cảnh nhấp chuột phải.

Nó đã đi đâu? Làm thế nào để tôi nhận được nó trở lại?

Đề xuất của bạn không thể bao gồm menu EditRefactor .

Tôi đã cố gắng đặt lại cài đặt Visual Studio của mình về mặc định bằng cách sử dụng menu Công cụCài đặt nhập và xuất và điều đó cũng không đưa menu trở lại.


Ý của tôi là, trình đơn tái cấu trúc thanh menu không phải là thứ bị thiếu.
Mr. Young

Bất kỳ thời gian cụ thể nào nó không xuất hiện? như đổi tên phương thức hoặc trích xuất phương thức? hay chỉ ở khắp mọi nơi?
Kritner

Vấn đề dường như tồn tại ở khắp mọi nơi.
Mr. Young

1
Nó không còn hoạt động khi mã không được biên dịch. Trước đây, bạn có thể sử dụng nó trên mã chưa hoàn chỉnh.
PRMan

Câu trả lời:


93

Một số công cụ tái cấu trúc đã được di dời hoặc ít nhất là có thể truy cập theo cách khác so với trước đây.

Sử dụng cấu trúc lại phương thức giải nén làm ví dụ, bạn vẫn có thể sử dụng chức năng này; nó chỉ không được thực hiện giống như trước đây:

Chọn các phần để giải nén

Kích chuột phải

Kích chuột phải

Hành động nhanh

Hành động nhanh

Bấm trích xuất Phương pháp

Bấm vào phương pháp giải nén

Tôi nghĩ rằng họ đã thay đổi nó để cảm thấy "ReSharper" hơn. Tuy nhiên, tất cả các chức năng vẫn sẽ ở đó.

Dưới đây là thông tin thêm về cấu trúc lại trong Visual Studio 2015 - hy vọng điều này sẽ hữu ích! Cấu trúc lại (C #)


vâng, chắc chắn sẽ mất một số thời gian để làm quen. Tôi dám cá rằng đó là trực quan hơn cho người dùng thường xuyên của resharper dù ... có lẽ ...
Kritner

2
Cảm ơn bạn vì các ảnh chụp màn hình. Tôi không chắc mình đã tìm thấy nơi mà nó đã được chuyển đi nếu không! :-)
Mr. Young

1
FYI: Có vẻ như một lỗi trong một số phiên bản của VS quanh chức năng này VS treo khi refactoring một số mã để trích xuất một phương pháp mới
Liam

2
Lời giải thích hay. + Tôi là một sucker cho hình ảnh đẹp :)
Fetchez la vache

1
@BarthoBernmann đó là ngữ cảnh cụ thể, bạn có chắc chắn rằng bạn có một đoạn mã hợp lệ trong một phương thức được đánh dấu để trích xuất không?
Kritner

2

Bạn không cần truy cập cấu trúc lại bằng cách sử dụng nhấp chuột phải của chuột.

Bạn nên sử dụng các tổ hợp phím tắt trong Visual Studio.

Để biết tất cả các phím tắt có thể có, hãy xem Các phím tắt mặc định trong Visual Studio, Refactor .


1
Liên kết đã cho đi đến một trang cho Visual Studio 2008. Danh sách cho VS 2015 có tại msdn.microsoft.com/en-us/library/da5kh0wa.aspx#bkmk_refactor .
Theophilus

Phiên bản rút gọn: CTRL + R, M. Ngoài ra, Edit> Refactor> Extract Method ... (chỉ hiển thị khi một khối mã được đánh dấu).
Chris

1

Bạn có thể cần phải xây dựng dự án để nó hoạt động.

Xem phần soạn thảo mã ASP.NET Web Forms trong Visual Studio 2013 | Tài liệu Microsoft . (Nếu nó bị thiếu thì vấn đề là tôi đang sử dụng một ví dụ do Microsoft cung cấp.). Trong Tái cấu trúc và Đổi tên, hãy xem Để trích xuất một phương thức trong trang C # . Khi tôi làm theo hướng dẫn, tôi không thể tìm thấy tính năng trích xuất mã vào một phương thức. Khi tôi thử menu Chỉnh sửa, nó cho biết tôi không có mã hợp lệ. Sau đó, tôi xây dựng dự án và tính năng trích xuất mã đã có sẵn và hoạt động.


0

Nếu bạn thay đổi tên của đối tượng mà bạn đang cấu trúc lại, bóng đèn sau đó sẽ xuất hiện ở bên trái hỏi bạn có muốn thay đổi tên của đối tượng (tức là cấu trúc lại) hay tạo một phương thức khởi tạo mới cho đối tượng được đặt tên mới không.


2
OP của tôi đã đề cập cụ thể đến trình tái cấu trúc "Nhấp chuột phải". Tôi ghét bóng đèn, điều này bắt nguồn từ câu hỏi của tôi.
Mr. Young

0

Ctrl+ .là phím tắt để trích xuất một phương pháp trong Visual Studio 2015 trở đi.

Ctrl+ M, Rkhông hoạt động nữa trong các phiên bản mới.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.