Visual Studio 2008에서 프로젝트 구성을 제거하려면 어떻게합니까?


98

기존의 여러 프로젝트를 가져온 Visual Studio 2008 솔루션이 있습니다. 프로젝트는 혼합 언어 샘플 코드 (C #, VB, C ++ / CLI)입니다. 현재 여러 구성이 있지만 각 프로젝트에 단일 "디버그"구성 만 포함되기를 원합니다.

구성 관리자에서 다른 구성 (예 : "Release")을 삭제했지만 그렇게 한 것처럼 개별 프로젝트에서 삭제되지 않는다는 경고 메시지가 표시되었습니다.

그리고 실제로 개별 프로젝트로 이동할 때 솔루션 수준에서는 "디버그"만 있음에도 불구하고 "릴리스"및 기타 구성이 여전히 있습니다.

각 프로젝트에서 이러한 추가 구성을 제거하는 가장 좋은 방법은 무엇입니까? GUI에서이 작업을 수행하는 방법을 간과하고 있습니까? 아니면 프로젝트 파일을 직접 편집해야합니까?

답변:


191

구성 관리자에서 제거 할 구성이있는 각 프로젝트 의 "구성"열에서 "편집 ..."을 선택합니다 (활성 솔루션 구성이라는 드롭 다운을 통하지 않음).

팝업 대화 상자에서 원하지 않는 각 구성을 표시하고 "제거"를 선택하십시오.


22
감사합니다! Visual Studio가 모든 프로젝트에서 구성을 제거하는 더 빠른 방법을 제공했으면합니다. 솔루션에 12 개 정도의 프로젝트가있는 경우 각 프로젝트를 살펴보고 수동으로 구성을 삭제하는 것이 어렵습니다.
Stefano Ricciardi 2011-08-23

1
@Matthias 나는 다른 것을 간청한다. 그리고 아니요, 변경되지 않았습니다 (2009 년에 답변했을 때부터 2013 년 버전까지).
Timbo 2014 년

1
구성 관리자로 이동하여 편집을 통해 활성 솔루션 구성을 삭제하면 구성이 실제로 구성 관리자에서 제거됩니다. 그러나 이제 프로젝트 속성으로 이동하면 구성이 그대로 유지됩니다. .vcxproj 파일 내부를 살펴보면 구성이 여전히 존재합니다. Visual Studio 2013 (Professional 및 Ultimate) 사용
Matthias

1
@Matthias주의 깊게 읽으십시오 (특히 각 프로젝트 의 부분 ). 내 대답의 단어 선택 / 순서는 최상의 이해도를 위해 적절하게 최적화되지 않았지만 이것이 작동하는지 여부는 변경되지 않습니다.
Timbo 2014 년

1
@Stefano Ricciardi 5 년 후, 그러한 고통에 대한 해결책을 찾았습니까?
cppBeginner

10

팀보의 대답을 설명하기 위해 그가 말하는 내용은 다음과 같습니다. 일부 댓글 작성자와 마찬가지로 이것을 찾는 데 시간이 걸렸습니다.

여기에 이미지 설명 입력


9

솔루션의 모든 프로젝트에서 구성 제거를 자동화하는 가장 좋은 방법은 Nuget 콘솔 명령을 사용하여 Visual Studio API에 액세스하는 것입니다.

이동 도구 , Nuget 패키지 관리자 , 패키지 관리자 콘솔 .

거기에서 사용 :

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

이러한 방식으로 "Release". 라는 모든 프로젝트에서 모든 구성을 제거했습니다 . 소스 코드 버전 관리 시스템의 차이점을 항상 확인하는 것이 좋습니다. Web.Release.config와 같은 구성 변환을 사용하는 경우 영향을받는 파일 만 볼 수 csproj있으며 경우에 따라 sln파일이 여전히 존재합니다.

자세한 내용은 여기 에서 Visual Studio 버전 별 api 문서에서 확인할 수 있으며, 이는 C ++, C #, F #, VB 언어의 경우 최소 VS 2015에서 작동합니다.


예를 들어이 코드를 작성하는 방법에 대한 참조를 제공 할 수 있습니까? 튜토리얼이 있습니까? 나는 그것이 내 프로젝트를 망가 뜨리지 않도록하고, 그것을 스스로 유지할 수 있고, 아마도 그것을 다른 일에 사용하고 싶습니다.
javaLover

감사! 귀하의 링크에있는 주제의 트리 (페이지 상단)가입니다 Docs > .NET > ... > DeleteConfigurationRow. .net 솔루션에서만 작동합니까? C ++ 솔루션에 대해서도 테스트 했습니까?
javaLover

내 C ++ 솔루션의 VS2019에서 작동하지 않음 : COM 구성 요소에 대한 호출에서 오류 HRESULT E_FAIL이 반환되었습니다. 줄에서 : 1 char : 30 + ... | Foreach {$ _. ConfigurationManager.DeleteConfigurationRow ( "DLL-Impor ... + CategoryInfo : OperationStopped : (:) [], COMException + FullyQualifiedErrorId : System.Runtime.InteropServices.COMException Error HRESULT E_FAIL이 COM 호출에서 반환되었습니다. at line : 1 char : 30 + ... | Foreach {$ _. ConfigurationManager.DeleteConfigurationRow ( "DLL-Impor ...
Terry

C ++ 프로젝트의 솔루션으로 잘 작동했습니다. 팁 고마워!
Nordic Mainframe

3

내가 아는이 특정 질문에 대답하지 않지만 VS2013을 사용하면 속성 관리자 탭을 열고 모든 프로젝트 구성을 확장하고 CTRL 또는 SHIFT 키를 사용하여 다중 선택을 수행하고 한 번에 여러 프로젝트에서 구성을 삭제할 수 있습니다.


C ++ 프로젝트에만 해당됩니까? 말씀하신 탭이 '보기> 기타 창> 속성 관리자'라고 생각하십니까?
Steven Anderson

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.