4

하나의 프로젝트로 새 솔루션을 만든 다음 대상 플랫폼을 "모든 CPU"에서 "x86"으로 변경합니다. 이 새로운 프로젝트가 추가 된 후에는 기본적으로 빌드되지 않으며 대상 플랫폼이 전역 설정을 따르지 않습니다. 왜?!대상 플랫폼이 명시 적으로 설정된 경우 새 프로젝트가 작성되지 않음

구성 관리자를 보면 추가 된 새 프로젝트는 "빌드"로 선택되지 않고 x86 플랫폼 대신 "모든 CPU"대상 플랫폼을 사용합니다. 왜 이런 일이 일어나는 걸까요? 나는 새로운 프로젝트도 전 세계적으로 설정되고 정의 된 x86 타겟 플랫폼을 기대하고있다. 내가 시도한 것들 :

  • 다시 글로벌 플랫폼을 모든 CPU로 전환 한 다음 x86으로 다시 토글한다. 변경되지 않습니다.
  • 새 프로젝트에 대해 명시 적으로 플랫폼을 선택합니다. 목록에서 x86을 사용할 수없고 <New..>라고 말하고 추가하려고하면 ".. 같은 이름의 솔루션 플랫폼이 이미 있습니다." ".
  • 새 프로젝트의 빌드 속성에서 구성 섹션의 플랫폼을 변경할 수는 없지만 일반 섹션에서 "플랫폼 대상"을 x86으로 설정할 수 있습니다. 그러나 이것이 실제적으로 차이가 있는지 여부는 명확하지 않으며 나중에 대상 플랫폼을 전 세계적으로 변경하면 응답하지 않습니다.

처음에는이 문제가 VS2008에서 VS2010으로의 솔루션을 변환하는 데 문제가 있다고 생각했지만 문제는 두 곳 모두에 적용됩니다. 나는. VS2008에서 솔루션을 만들고 VS2008에 머무르면 문제가 발생합니다.

답변

4

예, 이것은 VS2010에서의 거의 변하지 않는 변화이며 다소 엉망입니다. 2010 년에 작성된 새로운 솔루션에는 "Debug | x86"및 "Release | x86"의 두 가지 구성이 있습니다. 이전 버전에서 만든 솔루션과 다른 점은 "디버그 | 모든 CPU"및 "릴리스 | 모든 CPU"가 기본값이었습니다.

이 VS2010 만든 솔루션에 이전 버전에서 만든 기존 프로젝트를 추가하면 불쾌한 혼합 백이 생깁니다. 플랫폼 콤보는 이제 세 개의 옵션, "x86", "모든 CPU"및 "혼합 플랫폼"을 표시합니다. 후자는 모든 프로젝트를 수립 할 것입니다. 또한 은 매우입니다. 구성 이름은 실제로 플랫폼 대상 설정에 직접 영향을 미치지 않습니다.

수정이 가능합니다. .sln 및 .vcproj 파일의 "Any CPU"를 "x86"으로 검색하고 텍스트 편집기로 바꿀 수 있습니다. 가장 좋은 방법은 아마도 문제가 발생하지 않고 VS2010 솔루션을 새로운 VS2008 솔루션으로 변환하는 것입니다. 운 좋은 문제.

+0

고마워요! seach + .sln 바꾸기 시도 할 것입니다 이상한 소리하지 않습니다. -/실제로 VS2010 내 VS2008 솔루션을 변환 할 않았다 및 새 프로젝트 - 기존 VS2008 프로젝트를 추가 할 때 문제가 나타납니다. 또한; 나는 VS2008만으로 작업 할 때 이것을 얻었습니다. 업그레이드도없고, 아무것도 아니 었습니다. 목표 플랫폼을 바꾸고 새로운 깨끗한 프로젝트를 추가하는 것뿐입니다. 그래서 (단지) VS2010 것 같습니다. – stiank81

+0

솔루션 및 프로젝트 파일을 수정하여 문제를 해결할 수있는 것 같습니다."모든 CPU"를 "x86"으로 대체 할 수는 없지만 수행해야 할 작업을 파악하기는 쉽지 않았습니다. 그리고 이것은 실제로 나중에 글로벌 설정에 적용된 변경 사항에 응답합니다. 큰! :-) – stiank81

+0

프로젝트를 언로드하고 VS 내에서 .csproj 파일을 편집하여 문제를 해결했습니다. x86 대신 "AnyCPU"(Any와 CPU 사이에 따옴표 나 공백이 없어야 함)를 사용하십시오. 한 경우에 비어있는 PropertyGroup이 추가되었다는 것을 알았습니다. 제거했습니다. – pbz

1

단계 :

  • 닫기 프로젝트
  • 열기
  • 64 모든 86를 대체 메모장
  • 에서 csproj 파일은
  • 프로젝트를 다시 저장하고 작동합니다.
관련 문제