ฉันจะลบการกำหนดค่าโครงการใน Visual Studio 2008 ได้อย่างไร


98

ฉันมีโซลูชัน Visual Studio 2008 ซึ่งฉันได้นำเข้าโครงการที่มีอยู่แล้วจำนวนมาก โปรเจ็กต์เป็นโค้ดตัวอย่างภาษาผสม (C #, VB, C ++ / CLI) ขณะนี้มีการกำหนดค่าหลายรายการ แต่ฉันต้องการให้แต่ละโครงการมีการกำหนดค่า "แก้ไขข้อบกพร่อง" เพียงรายการเดียว

ในเครื่องมือจัดการการกำหนดค่าฉันได้ลบการกำหนดค่าอื่น ๆ (เช่น "การเปิดตัว") แต่เมื่อฉันทำเช่นนั้นก็มีข้อความเตือนเพื่อบอกฉันว่าจะไม่ถูกลบออกจากแต่ละโครงการ

และแน่นอนเมื่อฉันไปที่แต่ละโปรเจ็กต์ก็ยังคงมี "Release" และการกำหนดค่าอื่น ๆ แม้ว่าในระดับโซลูชันจะมีเพียง "Debug" ก็ตาม

ฉันจะลบการกำหนดค่าพิเศษเหล่านี้ออกจากแต่ละโครงการให้ดีที่สุดได้อย่างไร ฉันมองข้ามวิธีการทำสิ่งนี้ไปบ้างใน GUI หรือฉันควรแก้ไขไฟล์โครงการโดยตรง

คำตอบ:


191

ในเครื่องมือจัดการการกำหนดค่าเลือก "แก้ไข ... " ในคอลัมน์ "การกำหนดค่า" สำหรับแต่ละโครงการ (ไม่ใช่ผ่านเมนูดรอปดาวน์ชื่อ Active solution configuration) ที่มีการกำหนดค่าที่คุณต้องการลบ

ในกล่องโต้ตอบที่ปรากฏขึ้นให้ทำเครื่องหมายการกำหนดค่าแต่ละรายการที่ไม่ต้องการแล้วเลือก "ลบ"


22
ขอบคุณ! ฉันหวังว่า Visual Studio จะเสนอวิธีที่เร็วกว่าในการลบการกำหนดค่าในทุกโครงการ หากคุณมีโครงการหลายสิบโครงการหรือมากกว่านั้นในการแก้ปัญหาคุณต้องทำแต่ละโครงการและลบการกำหนดค่าด้วยตนเอง
Stefano Ricciardi

1
@ Matthias ฉันขอแตกต่าง และไม่ได้ไม่มีการเปลี่ยนแปลงใด ๆ (จากที่ฉันตอบในปี 2009 ถึงเวอร์ชัน 2013)
Timbo

1
หากฉันไปที่เครื่องมือจัดการการกำหนดค่าลบการกำหนดค่าโซลูชันที่ใช้งานอยู่ผ่านการแก้ไขการกำหนดค่าจะถูกลบออกจากเครื่องมือจัดการการกำหนดค่า แต่ถ้าตอนนี้คุณไปที่คุณสมบัติของโปรเจ็กต์ของคุณการกำหนดค่ายังคงอยู่ที่นั่น หากคุณดูภายในไฟล์. vcxproj แสดงว่าการกำหนดค่ายังคงอยู่ที่นั่น ฉันใช้ Visual Studio 2013 (Professional และ Ultimate)
Matthias

1
@ Matthias อ่านอย่างละเอียด (โดยเฉพาะส่วนของแต่ละโครงการ ) บางทีตัวเลือก / ลำดับคำในคำตอบของฉันอาจไม่ได้รับการปรับให้เหมาะสมเพื่อความเข้าใจที่ดีที่สุด แต่ก็ไม่ได้เปลี่ยนแปลงว่าจะได้ผลหรือไม่
Timbo

1
@Stefano Ricciardi 5 ปีต่อมาคุณพบวิธีแก้ปัญหาสำหรับความเจ็บปวดดังกล่าวหรือไม่?
cppBeginner

10

เพื่อช่วยอธิบายคำตอบของทิมโบนี่คือสิ่งที่เขาพูดถึง เช่นเดียวกับผู้แสดงความคิดเห็นบางคนฉันใช้เวลาสักพักในการค้นหาสิ่งนี้

ป้อนคำอธิบายภาพที่นี่


9

วิธีที่ดีที่สุดในการลบคอนฟิกูเรชันออกจากโปรเจ็กต์ทั้งหมดของโซลูชันโดยอัตโนมัติทำได้โดยใช้คำสั่ง Nuget console เพื่อเข้าถึง visual studio apis

ไปที่เครื่องมือ , Nuget แพคเกจผู้จัดการ , แพคเกจคอนโซลการจัดการ

จากนั้นใช้:

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

"Release"ด้วยวิธีนี้คุณได้ลบการกำหนดค่าทั้งหมดจากโครงการที่เรียกว่าทั้งหมด ฉันขอแนะนำให้คุณตรวจสอบความแตกต่างของระบบการกำหนดเวอร์ชันของซอร์สโค้ดเสมอคุณจะเห็นเฉพาะcsprojและในบางกรณีslnไฟล์ที่ได้รับผลกระทบหากคุณใช้การแปลงการกำหนดค่า (เช่น Web.Release.config) ไฟล์เหล่านี้จะยังคงอยู่ที่นั่น

ข้อมูลเพิ่มเติมมีอยู่ในเอกสาร API เฉพาะเวอร์ชัน Visual Studio ที่นี่ซึ่งใช้งานได้ตั้งแต่ VS 2015 เป็นอย่างน้อยสำหรับภาษา C ++, C #, F #, VB


คุณสามารถให้ข้อมูลอ้างอิงบางส่วนเช่นคุณคิดรหัสนี้ได้อย่างไร มีการสอนหรือไม่? ฉันต้องการให้แน่ใจว่ามันจะไม่ทำลายโครงการของฉันสามารถดูแลรักษาได้ด้วยตัวเองและอาจใช้เพื่อสิ่งอื่น ๆ
javaLover

ขอบคุณ! ผมสังเกตเห็นต้นไม้หัวข้อของ (ด้านบนของหน้า) Docs > .NET > ... > DeleteConfigurationRowในการเชื่อมโยงของคุณ มันใช้ได้เฉพาะกับ. net solution หรือไม่? คุณได้ทดสอบโซลูชัน C ++ ด้วยหรือไม่?
javaLover

ไม่ทำงานใน VS2019 บนโซลูชัน C ++ ของฉัน: ข้อผิดพลาด HRESULT E_FAIL ถูกส่งกลับจากการโทรไปยังคอมโพเนนต์ COM ที่บรรทัด: 1 ถ่าน: 30 + ... | Foreach {$ _. ConfigurationManager.DeleteConfigurationRow ("DLL-Impor ... + CategoryInfo: OperationStopped: (:) [], COMException + FullyQualifiedErrorId: System.Runtime.InteropServices.COMException Error HRESULT E_FAIL ถูกส่งกลับจากการเรียกไปยัง COM component. ที่บรรทัด: 1 char: 30 + ... | Foreach {$ _. ConfigurationManager.DeleteConfigurationRow ("DLL-Impor ...
Terry

ทำงานได้ดีสำหรับฉันโซลูชันของโครงการ C ++ ขอบคุณสำหรับทิป!
Nordic Mainframe

3

ไม่ตอบคำถามเฉพาะนี้ที่ฉันรู้ แต่ด้วย VS2013 คุณสามารถเปิดแท็บ Property Manager ขยายการกำหนดค่าโครงการทั้งหมดทำการเลือกหลายรายการโดยใช้ปุ่ม CTRL หรือ SHIFT และลบการกำหนดค่าจากหลายโครงการพร้อมกัน


สำหรับโปรเจ็กต์ C ++ เท่านั้นหรือไม่ ฉันเดาว่าแท็บที่คุณอ้างถึงคือ 'View> Other Windows> Property Manager'?
Steven Anderson

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.