솔루션을 빌드 할 때 Visual Studio에서 프로젝트를 건너 뛸 수있는 이유를 확인하는 방법


95

다른 사람의 작업을 디버깅 중이며 솔루션이 상당히 큽니다. 전체를 빌드하려고하면 솔루션 내의 여러 프로젝트가 빌드되지 않고 건너 뜁니다. 빌드 프로세스 중에 출력 창을 보면 다음과 같이 표시됩니다.

1> ------ 모두 다시 빌드 건너 뛰기 : 프로젝트 : pr1lib ------

이러한 빌드를 건너 뛴 이유를 어떻게 확인할 수 있습니까? 추가 출력을 찾을 수 없습니다.

이것은 VS2008을 사용하며 솔루션은 C # 및 C ++ 코드로 구성됩니다.


제공된 답변 외에도 솔루션 구성 설정에 정리 / 빌드해야하는 체크 된 상태 (확인란 선택)의 각 프로젝트가 있는지 확인하십시오.Build > Configuration Manager: check as needed
Metro Smurf

2
프로젝트를 건너 뛰는 이유를 해결합니다. /fl이유가 포함 된 msbuild.log 파일을 얻으려면 빌드 설정 에 추가 해야합니다. 예 :skipped, due to false condition; ( ('$(Configuration)' == 'Release') and ('$(Platform)' == 'Any CPU') ) was evaluated as ( ('Debug' == 'Release') and ('AnyCPU' == 'Any CPU') ).
T_D

2
@T_D-Visual Studio에서 '/ fl'을 어디에 추가합니까? 로그는 어디에 표시됩니까? 이것을 대답으로 추가하면 다른 대답의 대부분은 문제에 대한 더 많은 정보를 얻는 것에 관한 원래 질문에 대답하기보다는 문제를 해결하기 위해 다양한 무작위 추측이기 때문에 나는 찬성 할 것입니다.
PaulG

@PaulG 아래 내 대답을 참조하십시오. 옵션에서 설정을 지정하십시오.
Darren Wood

답변:


88

솔루션을 마우스 오른쪽 단추로 클릭하고 속성을 선택한 다음 구성 속성을 선택합니다. 여기에서 빌드 할 프로젝트를 선택할 수 있습니다.

[ 편집 ] :
Kdt의 설명을 참조하십시오 : ... 구성 속성을 살펴보면 솔루션이 "모든 CPU"를 빌드하도록 설정되어있는 동안 프로젝트 빌드 대상이 "혼합 플랫폼"으로 구성되었습니다.

*이 문제가 발생했을 때 메인 프로젝트에는 'Any CPU'만 있었고 자식 DLL도 'any CPU'로 설정했지만 해당 프로필을 삭제하고 'x86'만 남겼습니다. dll에 대한 x86을 선택하면 작동이 시작됩니다.
[/ edit]


20
나는 신비한 "건너 뛴 빌드"를 가지고 있었고, 구성 속성을 살펴 보았을 때 프로젝트는 실제로 빌드 용으로 표시되었습니다. 그러나 솔루션이 "모든 CPU"를 빌드하도록 설정되어있는 동안 프로젝트 빌드 대상이 "혼합 플랫폼"으로 구성되어 문제가 해결되었습니다.
kdt

2
제 경우에는 모든 프로젝트와 솔루션이 모두 "Any CPU"로 설정되었지만 한 프로젝트는 빌드를 건너 뛰었습니다. 솔루션을 "Mixed Platforms"로 설정 한 다음 "Any CPU"로 다시 설정 한 후에야 빌드 할 수 있습니다. 전후 솔루션 파일의 DIFF 보면, 그것은 변경 {784BDC39-5783-4128-956E-99EA062FA8FB}.Debug|AnyCPU.ActiveCfg = Debug|AnyCPU{784BDC39-5783-4128-956E-99EA062FA8FB}.Debug|AnyCPU.ActiveCfg = Debug|Any CPU. 유일한 차이점은 줄 끝에있는 "Any"와 "CPU"사이에 추가 된 공간입니다.
사이먼 Tewsi

6
제 경우에는 모든 프로젝트가 "모든 CPU"로 설정되었고 프로젝트를 제거하고 (프로젝트를 제거해도 파일이 제거되지 않음) 솔루션에 다시 추가하여 문제가 해결되었습니다.
Hamid Mayeli

40

나는 단지 같은 문제가 있었다 – "프로젝트 언로드"와 "프로젝트 다시로드"가 문제를 해결했다!


나는 같은 문제가 있고 언로드 / 다시로드가 작동하지만 문제가 다시 발생하는 것 같습니다. 많은 프로젝트에서 발생하고 각 프로젝트를 언로드 / 다시로드해야합니다 ... 이것을 완전히 피하는 방법?
Liron 2011 년

이것은 Visual Studio가 빌드를 시도 할 때 출력 창에서 프로젝트가 이미 최신 상태 인 것으로 잘못보고하는 문제를 해결했습니다.
Kevin Laity 2013 년

32

빌드, 다시 빌드 및 정리 작업을 건너 뛰었습니다. 언로드 및 다시로드는 도움이되지 않았으며 Visual Studio를 다시 시작하지도 않았습니다.

솔루션에서 프로젝트를 제거하고 다시 추가하면 더 이상 건너 뛰지 않습니다. 제거하려면 솔루션 탐색기에서 프로젝트> 제거> 확인을 마우스 오른쪽 단추로 클릭합니다. 다시 추가하려면 솔루션 탐색기에서 솔루션> 추가> 기존 프로젝트를 마우스 오른쪽 단추로 클릭하고 프로젝트를 선택합니다.


7
해당 프로젝트에 모든 ProjectReference를 다시 추가해야합니다.
Joseph

9

구성이 x64이고 x64 컴파일러가 설치되지 않은 경우 프로젝트를 건너 뜁니다.


1
+1 Genius. SP1은 여기에서 찾을 수 있습니다. microsoft.com/download/en/details.aspx?id=10986
ashes999

x64 컴파일러가 설치되어 있지 않으면 x64를 선택할 수도 없습니다.
Calmarius

솔루션 및 프로젝트 구성은 "x64"라는 항목을 정의하고 사용할 수 있습니다. 프로세서 아치 제 3 회 DDL (플랫폼 대상 - 중간 빌드 속성 페이지 아래로). 사용할 수없는 그 하나입니다
StingyJack

9

내 솔루션은 이전에 언급 한 것과 동일합니다. 삭제-> 기존 프로젝트 추가

그러나이 솔루션 은 프로젝트 간의 참조가 사라짐을 의미합니다.

: 다시 추가 참조를 피하기 위해, 그리고 당신이 버전 제어 시스템을 사용하는 경우 경우 , 그것은 다음 단계로 acheve 목표로 가능하다 어떤 GIT 또는 TFS 또는 같은 :

  1. 작업 전에 모든 변경 사항이 커밋 / 체크인되었는지 확인하십시오.

  2. 솔루션에서 삭제하고 기존에 추가하는 모든 프로젝트를 진행합니다.

  3. .sln 파일이 변경되었습니다.

  4. 새 .sln 파일을 유지하되 버전 제어 시스템을 사용하여 모든 .cspoj 파일의 변경 사항을 취소합니다.



5

Visual Studio 2008은 64 비트 컴파일러가 설치되지 않았기 때문일 수 있습니다.

제어판-> 프로그램 및 기능-> Microsoft Visual Studio 2008 Professional-> [두 번 클릭]

Visual Studio 대화 상자에서

다음-> 기능 추가 / 제거-> (아래) Visual C ++-> (선택) x64 컴파일러 및 도구


4

VS 2010에도 문제가 있습니다. 제안 된 솔루션 : 빌드 구성 편집, 정리, 대상 프레임 워크 변경 / 재 변경, 작동하지 않습니다. 그러나 프로젝트를 언로드하고 다시로드하면됩니다.


3

이거 방금 고 쳤어요 도움이 될 것이라고 생각했습니다. Visual Studio와 함께 해당 컴파일러를 설치하지 않았을 가능성이 큽니다. 이것은 오늘 나에게 일어났습니다-기본적으로 VS 2008 설치 프로그램은 x64 C ++ 컴파일러를 설치하지 않습니다.

SP1이있는 경우 VS 설치를 변경하기 전에 제거하십시오. 완료되면 SP1을 다시 설치하십시오.


3

여기에 다른 가능성 중에서 문서화 할 가치가있는 이상한 것이 있습니다 ..

2 ~ 3 개의 다른 프로젝트에서 사용 된 코드를 사용하여 솔루션에 공유 프로젝트 를 추가했습니다 . 아시다시피-공유 프로젝트는 코드 일 뿐이며 실제로는 전통적인 의미의 프로젝트가 아닙니다. 공유 프로젝트를 '빌드'할 수 없으며 다른 프로젝트에 포함 된 다음 거기에서 빌드되는 코드 일뿐입니다.

그러나 어떻게 든 내 솔루션 파일은 공유 프로젝트가 빌드가 필요한 자체 인 것처럼 업데이트되었습니다. 나는 빌드하려고 할 때 공유 프로젝트의 코드를 변경하지 않았을 때 '아무것도 변경되지 않았습니다. 그 빌드를 건너 뛰십시오'라고 생각했습니다.

다음 solution.sln과 같은 파일 에서 공유 프로젝트를 찾았습니다 .

Project("{D954291E-2A0B-460D-934E-DC6B0785DB48}") = "Api.Common", "Api.Common\Api.Common.shproj", "{EC580471-D78A-4509-AC46-BD565553AD60}"

.. 괜찮습니다. 좋지 않은 점은이 프로젝트가 다음 GlobalSection(ProjectConfigurationPlatforms) = postSolution과 같이 등장했다는 것입니다.

    {EC580471-D78A-4509-AC46-BD565553AD60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Debug|Any CPU.Build.0 = Debug|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Release|Any CPU.ActiveCfg = Release|Any CPU
    {EC580471-D78A-4509-AC46-BD565553AD60}.Release|Any CPU.Build.0 = Release|Any CPU

.sln파일 에서 그 네 줄을 제거 했는데 이제 다시 행복해 보입니다.


큰! 이거 다! 나는 제거 모든 행을 전용 "글로벌"고 말했다 행을 시작하고 "EndGlobal"에 아래 모든 행을 제거하는의 .sln 파일에서. 그런 다음 다시 작동했습니다.
Ted

제거했을 때 솔루션을 빌드 할 때 자동으로 다시 추가되었지만 4 개의 항목이 모두 Debug | Any CPU와 동일하게 설정된 상태로 돌아 왔습니다. 그러나 그것은 내 문제를 해결했습니다.
EspressoBeans

2

빌드 메뉴로 이동하여 "구성 관리자"를 선택합니다. 선택한 구성에서 빌드하도록 구성된 프로젝트가 표시됩니다.


2

나에게도 비슷한 일이 일어났습니다. 문제가 뭔지 잘 모르겠지만 Clean , Build , Rebuild 등 이 아닙니다 . 저는 Visual Studio 2017 에서 작업 중이며 netstandard2.0어셈블리를 원했습니다 . 나에게 문제는 어떻게 든 프로젝트 유형이 잘못되었다는 것입니다. 아마도 netcoreapp클래스 라이브러리 에서 시작 하여 솔루션 파일에 갇혀 기억이 나지 않습니다. 어쨌든, 나는 프로젝트를 백업하고, 새로운 netstandard클래스 라이브러리 프로젝트를 만들고, 백업 된 비트를 고려했고, 그것이 저를 위해 수정되었습니다. HTH 누군가.


2
  1. Visual Studio 닫기
  2. 메모장으로 sln 파일 열기
  3. 다음과 같은 모든 항목을 삭제합니다. {B546C55D-9321-4FC0-B25C-46844222BEBE} .Debug with Fakes | x86.ActiveCfg = Debug with Fakes | x86 (여러 개가있을 것입니다)

4. 파일을 저장하십시오 5.Visual Studio를 열고 더 좋습니다.


2
이것이 왜 도움이됩니까? 몇 가지 설명을 추가하고 가능한 한 자세하게 작성하여 향후 독자가 이러한 조치를 취해야하는 이유를 이해하는 데 도움을 줄 수 있습니다.

2

나는 15.9.11로 업데이트했습니다. 일부 빌드 후 동일한 문제 : 대부분의 프로젝트가 건너 뜁니다 (문제없이 1 초 전에 빌드 됨). 솔루션을 언로드 / 다시로드하면 제 경우에는 항상 도움이되지만 곧 다시 발생합니다.

이유는 모르겠지만 ... VS2017의 큰 버그를 제외하고

구성 관리자를 확인했으며 모든 확인 표시가 빌드되도록 설정되었습니다.

아마도 그것은 너겟 패키지와 관련이 있을지 모르지만 그것은 추측 일뿐입니다.

솔루션에는 csproj가 아닌 c ++ / vcxproj 만 있습니다. 64와 32가 모두 설치됨


2

가장 먼저해야 할 일은 빌드가 프로젝트를 건너 뛰는 이유를 진단하는 것입니다. 그래서 자세한 빌드 출력에 상세를 변경 얻을 수 detailed있는 다음과 같은 장소에서 Visual Studio.

여기에 이미지 설명 입력


7
자세한 정보 설정은 불행히도 도움이되지 않습니다. 출력에는 여전히 이유를 설명하지 않고 '건너 뛴 프로젝트'만 표시됩니다.
PaulG

1

같은 문제가 있었는데 프로젝트 설정이 Itanium CPU 용이라는 것을 알게되었고 Intel로 변경하여 수정했습니다.


1

VS2005에서 동일한 문제가 발생했으며 모든 구성이 정확했습니다. 프로젝트 정리 명령도 건너 뛰었습니다.

마침내 Unloading / Reloading이 마술을했습니다.


1

솔루션 탐색기에서 솔루션을 마우스 오른쪽 버튼으로 클릭 한 다음 메뉴 하단의 속성을 클릭합니다. 속성 창 에서 왼쪽 창 에서 구성 속성 -> 구성 을 클릭 하면 오른쪽 창에 프로젝트 목록이 표시되고 팝업 창에서 빌드 확인란이 선택되어 있는지 확인합니다.


1

솔루션에 NuGet 프로젝트 (* .nuproj) 파일이 포함 된 경우 해당 파일을 언로드 한 다음 솔루션을 다시 빌드 해보십시오.

위의 어느 것도 작동하지 않은 후에 이것은 나를 위해 일했습니다.


0

때로는 솔루션과 프로젝트에서 x86을 말할 수 있도록 설정된 대상 플랫폼이있을 때 프로젝트가 실제로 항상 선택되지는 않았습니다.

다시 확인하려면 프로젝트 속성으로 이동하여 빌드-> 플랫폼 설정에서 해당 플랫폼을 선택할 수 있는지 확인하십시오. 그런 다음 구성 관리자로 이동하여 해당 구성을 만들어야합니다.


0

새 PC의 일부 Windows CE 프로젝트에서이 문제가 발생했습니다. "프로젝트 언로드"및 "프로젝트 다시로드"가 문제를 해결하는 것처럼 보였지만 실제로 Visual Studio는 단순히 다른 플랫폼으로 전환하여 빌드했습니다.

내 WinCE 플랫폼이 활성 플랫폼으로 표시되었지만 Visual Studio에서는 "실제로"인식하지 못했습니다. 해결책은 관리자 권한으로 WinCE SDK다시 설치하는 것이 었습니다 .

  • Visual Studio 2008이 실행되고 있지 않은지 확인합니다.
  • 관리자 권한으로 "Visual Studio 2008 명령 프롬프트"를 엽니 다. Windows 7에서는 바로 가기를 마우스 오른쪽 단추로 클릭하고 "관리자 권한으로 실행"옵션을 선택하십시오.
  • 다음 명령을 입력하십시오. msiexec /log SDKInstallLog.txt /package <the path to your .msi file>
  • 사용자 지정 또는 전체 설치 선택 사용자 지정을 수행할지 묻는 메시지가 표시되면 설치 관리자에게 문서 설치를 생략하도록 지시합니다 (내 경우에는이 단계가 필요하지 않았습니다. 실제로 기존 설치를 "복구"하도록 요청했습니다.). )
  • 설치

0

VS 2008은 x64 컴파일러가 설치되지 않은 경우 x64 대상을 건너 뜁니다. VS 2008은 기본적으로 제공되지 않습니다. 일종의 바보 같은 것.


0

Telerik의 디 컴파일러에서 프로젝트를 생성 한 후 재 컴파일을 시도한 후 매우 유사한 문제가 발생했습니다. 프로젝트를 다시 빌드하려고 할 때마다 건너 뛰었습니다. 위의 많은 제안을 시도했지만 저에게는 프로젝트 속성에서 선택한 .NET Framework였습니다.

솔루션 파일에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성, 애플리케이션 탭을 선택하고 대상 프레임 워크를 4.0에서 3.5로 변경합니다.

그런 다음 다시 빌드하면 어셈블리 참조 누락 오류가 많이 발생하는데, 이는 아직 참조를 추가하지 않았기 때문에 의미가 있습니다.


0

Visual Studio 2017의 작은 업데이트 하나를 업데이트 한 다음 설치 관리자가 컴퓨터를 다시 시작하라는 알림을 표시하지만 다시 시작하지 않았습니다. Visual Studio 2017에서 프로젝트 또는 솔루션을 빌드 할 때 위와 동일한 문제가 발생합니다. 키, 그래서 컴퓨터를 다시 시작했습니다. :>


0

Visual Studio 2017 15.9.4 에서이 문제가 발생했으며 몇 가지 검색 및 시간을 투자 한 후 TFS에서 병합 한 후 프로젝트 중 하나의 .csproj 파일이 손상되었음을 발견했습니다. (솔루션에서 문제가있는 프로젝트를 언로드하여 다른 프로젝트를 빌드 할 수 있습니다.) 내 문제를 해결하는 방법은 병합 전후에 .csproj 파일을 비교하고 수정하는 것입니다. 그리고 수정으로 내 자신의 프로젝트 유형이 .netStandard 였기 때문에 이전 .netstandard 스타일 버전과 유사하게 만들기 위해 새 .csproj 파일에서 Configuration PropertyGroup , 모든 및 기타를 포함한 불필요한 줄을 제거 했습니다.


0

비슷한 문제가 있었는데 어떤 이유로 인해 솔루션 탐색기에서로드 할 수없는 프로젝트가 하나있었습니다. 그 프로젝트를로드했을 때 그것은 매력처럼 작동했습니다.


0

나는 방금이 문제에 빠졌다.

VS 2017을 최신 버전 15.9.11로 업데이트했고 내 프로젝트 중 .net 코어 2.2로 업데이트 된 프로젝트는 거의 없었습니다. 나는 처음에 모든 프로젝트를로드하여 건물 / 청소 / 재건을 시도했고 모든 것을 건너 뛰었습니다. 해결하려면 다음을 따르십시오.

  1. 각 프로젝트를 언로드하고 다시로드했습니다.
  2. VS의 모든 인스턴스를 닫고 관리자로 VS를 열었습니다 (바로 가기를 마우스 오른쪽 단추로 클릭하고 "관리자 권한으로 실행"옵션을 선택).

그것이 모든 것이 다시 실행되었고 모든 프로젝트를 성공적으로 구축 할 수있었습니다.


0

비주얼 스튜디오 2017

구성 관리자에서 구성을 추가 한 후

Project-> Project Only-> Build Only / Rebuild Only / Clean Only를 마우스 오른쪽 버튼으로 클릭하십시오.

다른 모든 설정이 올바른 경우.


0

문제 : Rebuilding, Build, Clean이 두 프로젝트를 제외한 모든 프로젝트를 건너 뛰었습니다.

나에게 적합하지 않은 솔루션 :

  1. 솔루션 구성 설정이 예상대로 였으므로 변경 사항이 도움이되지 않았습니다.

  2. 언로드 및 다시로드가 작동하지 않았습니다.

발생 이유 :

이는 대상 .NET 프레임 워크가 두 프로젝트의 경우 더 높고 (4.7) 다른 프로젝트의 경우 더 낮기 때문에 발생했습니다. 처음에는 .NET 4.7을 설치하라는 메시지가 나타 났지만 내 컴퓨터를 다시 시작하지 않고 설치되었음을 인식 할 수 없었습니다.

효과가있는 솔루션 :

  1. 내 컴퓨터를 다시 시작하면 트릭이 발생했습니다. 다시 시작한 후 .NET 4.7이 설치되었음을 올바르게 인식했습니다.
  2. 또는 프로젝트-> 속성-> 응용 프로그램-> 대상 프레임 워크를 마우스 오른쪽 버튼으로 클릭하고 건너 뛴 다른 프로젝트와 동일하게 설정하여 프로젝트의 대상 프레임 워크를 다운 그레이드해도 문제가 해결되었습니다.

더 이상 문제가 발생하지 않도록 최신 .NET Framework를 설치하고 컴퓨터를 다시 시작하는 것이 좋습니다.


0

빌드에 실패한 종속 프로젝트가있는 모든 프로젝트에서 빌드를 건너 뜁니다.

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