Làm cách nào để xóa cấu hình dự án trong Visual Studio 2008?


97

Tôi có một giải pháp Visual Studio 2008 mà tôi đã nhập một số dự án có sẵn vào đó. Các dự án là mã mẫu ngôn ngữ hỗn hợp (C #, VB, C ++ / CLI). Chúng hiện có nhiều cấu hình, nhưng tôi muốn mỗi dự án chỉ có một cấu hình "Gỡ lỗi" duy nhất.

Trong trình quản lý cấu hình, tôi đã xóa các cấu hình khác (ví dụ: "Phát hành"), nhưng khi tôi làm như vậy, có một thông báo cảnh báo cho tôi biết rằng chúng sẽ không bị xóa khỏi các dự án riêng lẻ.

Và thực sự khi tôi điều hướng đến một dự án riêng lẻ, nó vẫn có "Release" và các cấu hình khác, mặc dù ở cấp giải pháp chỉ có "Debug".

Làm cách nào để tôi có thể loại bỏ tốt nhất các cấu hình bổ sung này khỏi mỗi dự án? Tôi đang bỏ qua một số cách để thực hiện điều này trong GUI hay tôi chỉ nên chỉnh sửa trực tiếp các tệp dự án?

Câu trả lời:


191

Trong Trình quản lý Cấu hình, hãy chọn "Chỉnh sửa ..." trong cột "Cấu hình" cho từng dự án (không thông qua menu thả xuống có tên Cấu hình giải pháp hoạt động) có cấu hình bạn muốn xóa.

Trong hộp thoại bật lên, đánh dấu từng cấu hình không mong muốn và chọn "Xóa".


22
Cảm ơn bạn! Tôi ước Visual Studio cung cấp một cách nhanh hơn để xóa cấu hình trên tất cả các dự án. Nếu bạn có hàng tá dự án hoặc tương tự trong một giải pháp, bạn sẽ rất khó thực hiện từng dự án và xóa cấu hình theo cách thủ công.
Stefano Ricciardi

1
@Matthias Tôi xin phép khác. Và không, nó đã không được thay đổi (từ khi tôi trả lời câu hỏi này vào năm 2009 đến phiên bản 2013).
Timbo

1
Nếu tôi đi tới Trình quản lý cấu hình, xóa cấu hình giải pháp đang hoạt động thông qua chỉnh sửa, thì cấu hình thực sự bị xóa khỏi Trình quản lý cấu hình. Nhưng nếu bây giờ bạn đi đến các thuộc tính của dự án của bạn, thì cấu hình vẫn ở đó. Nếu bạn nhìn vào bên trong tệp .vcxproj, thì cấu hình vẫn ở đó. Tôi sử dụng Visual Studio 2013 (Professional và Ultimate)
Matthias

1
@Matthias Đọc kỹ (đặc biệt là phần cho mỗi dự án ). Có thể lựa chọn / thứ tự từ trong câu trả lời của tôi không được tối ưu hóa đúng cách để dễ hiểu nhất, nhưng điều đó không thay đổi cho dù điều này có hiệu quả hay không.
Timbo

1
@Stefano Ricciardi 5 năm sau, bạn đã tìm ra giải pháp cho nỗi đau như vậy chưa?
cppBeginner 17/02/18

10

Để giúp minh họa câu trả lời của timbo, đây là những gì anh ấy đang nói về. Giống như một số người bình luận, tôi đã mất một lúc để tìm thấy điều này.

nhập mô tả hình ảnh ở đây


8

Cách tốt nhất để tự động hóa việc xóa cấu hình khỏi tất cả các dự án của một giải pháp được thực hiện bằng cách sử dụng lệnh Nuget console để truy cập các apis studio trực quan.

Đi tới Công cụ , Trình quản lý gói Nuget , Bảng điều khiển Trình quản lý gói .

Từ đó sử dụng:

Get-Project -All | Foreach { $_.ConfigurationManager.DeleteConfigurationRow("Release") }

Bằng cách này, bạn đã loại bỏ tất cả các cấu hình khỏi tất cả các dự án được gọi "Release". Tôi thực sự khuyên bạn nên luôn kiểm tra sự khác biệt trên hệ thống lập phiên bản mã nguồn của mình, bạn sẽ chỉ thấy csprojvà trong một số trường hợp, slncác tệp bị ảnh hưởng, nếu bạn đang sử dụng chuyển đổi cấu hình (như Web.Release.config), chúng sẽ vẫn ở đó.

Thông tin thêm có sẵn trên tài liệu api dành riêng cho phiên bản studio trực quan tại đây , tài liệu này hoạt động từ ít nhất VS 2015 cho các ngôn ngữ C ++, C #, F #, VB.


Bạn có thể cung cấp một số tài liệu tham khảo, ví dụ như cách bạn nghĩ ra mã này? Có bất kỳ hướng dẫn? Tôi muốn đảm bảo rằng nó sẽ không phá vỡ dự án của tôi, có thể tự bảo trì và có thể sử dụng nó cho những việc khác.
javaLover

Cảm tạ! Tôi nhận thấy cây của chủ đề (đầu trang) trong liên kết của bạn là Docs > .NET > ... > DeleteConfigurationRow. Nó chỉ hoạt động cho giải pháp .net? Bạn cũng đã thử nghiệm nó cho giải pháp C ++?
javaLover 31/07/19

Không hoạt động trong VS2019 trên giải pháp C ++ của tôi: Lỗi HRESULT E_FAIL đã được trả về từ một cuộc gọi đến thành phần COM. Tại dòng: 1 ký tự: 30 + ... | Foreach {$ _. ConfigurationManager.DeleteConfigurationRow ("DLL-Impor ... + CategoryInfo: OperationStopped: (:) [], COMException + CompleteQualifiedErrorId: System.Runtime.InteropServices.COMException Error HRESULT E_FAIL đã được trả về từ một cuộc gọi tới COM thành phần. Tại dòng: 1 char: 30 + ... | Foreach {$ _. ConfigurationManager.DeleteConfigurationRow ("DLL-Impor ...
Terry

Làm việc tốt cho tôi, giải pháp của các dự án C ++. Cảm ơn vì tiền hỗ trợ!
Nordic Mainframe

3

Không trả lời câu hỏi cụ thể này mà tôi biết nhưng với VS2013, bạn có thể mở tab Trình quản lý thuộc tính, mở rộng tất cả các cấu hình dự án, thực hiện nhiều lựa chọn bằng cách sử dụng phím CTRL hoặc SHIFT và xóa cấu hình khỏi nhiều dự án cùng một lúc.


Điều này chỉ dành cho các dự án C ++? Tôi đoán tab bạn đang đề cập đến là 'View> Other Windows> Property Manager'?
Steven Anderson

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.