"이 프로젝트에 대해 outputpath 속성이 설정되지 않았습니다."오류


90

Visual Studio 2008에 다중 프로젝트 솔루션이 있습니다. 방금 Release-VersionIncrement라는 새 구성을 솔루션에 추가하여 "사용 릴리스"구성을 기준으로 지정했습니다. 모든 프로젝트 파일이 해당 구성으로 업데이트되었습니다. 그러나이 구성을 사용하여 특정 프로젝트를 컴파일하려고하면 다음 오류가 발생합니다.

오류 5이 프로젝트에 대해 OutputPath 속성이 설정되지 않았습니다. 유효한 구성 / 플랫폼 조합을 지정했는지 확인하십시오. 구성 = 'Release-VersionIncrement'Platform = 'AnyCPU'C : \ WINDOWS \ Microsoft.NET \ Framework \ v3.5 \ Microsoft.Common.targets 539 9 DataConversion

여기서 무슨 일이 일어나고 있습니까? 프로젝트는 릴리스 또는 디버그 구성에서 잘 컴파일됩니다.


6
TFS 빌드 정의의 드롭 다운 목록에 "AnyCPU"가 아닌 "AnyCPU"가 있다는 것을 깨달을 때까지 몇 시간 동안이 문제를 해결했습니다 !!!!
머핀 맨

1
VS2012에서 빌드 구성의 드롭 다운은 "Any CPU"이지만 .csproj 파일 내부는 "AnyCPU"이므로 Jenkins 또는 명령 줄에서 "AnyCPU"를 사용하면 작동합니다.
Jirong Hu

답변:


94

일반적으로 이것은 프로젝트 파일의 OutputPath 속성이 비어있을 때 발생합니다. 프로젝트 파일은 MSBuild 파일입니다. Visual Studio에서 편집하려면 : 프로젝트를 마우스 오른쪽 단추로 클릭하고 "프로젝트 언로드"를 선택한 다음 언로드 된 프로젝트를 마우스 오른쪽 단추로 클릭하고 "편집 ..."을 선택합니다.

Release-Versionincrement 속성 그룹을 찾습니다. 다음과 같이 보일 것입니다.

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release-VersionIncrement|AnyCPU' ">
  <OutputPath>bin\Release-VersionIncrement\</OutputPath>
  <DefineConstants>TRACE</DefineConstants>
  <Optimize>true</Optimize>
  <DebugType>pdbonly</DebugType>
  <PlatformTarget>AnyCPU</PlatformTarget>
  <CodeAnalysisUseTypeNameInSuppression>true</CodeAnalysisUseTypeNameInSuppression>
  <CodeAnalysisModuleSuppressionsFile>GlobalSuppressions.cs</CodeAnalysisModuleSuppressionsFile>
  <ErrorReport>prompt</ErrorReport>
</PropertyGroup>

중요한 것은 OutputPath입니다. 프로젝트 파일에 존재합니까? 추가하지 않은 경우 다시 시도하십시오.


33
출력 경로가 올 바르고이 오류가 계속 발생하는 경우 더 이상 존재하지 않는 어셈블리 또는 기타 프로젝트에 대한 참조가있을 수 있습니다. 이전 참조를 정리하십시오. 그것은 내 경험이었습니다.
John K

3
방금이 오류가 발생하여 프로젝트 파일을 직접 수정해야했습니다. 프로젝트 속성 페이지에 "모든 CPU"라고 표시되어 있지만 처음에는 속성이 공백으로 설정되었으며 환경 변수에서 Platform = BPC 설정을 선택했습니다. 이를 수정하고 모든 CPU에서 x86으로 속성 페이지를 설정 / 재설정 한 후에도 플랫폼이 이제 'x86'(?!?)이라고 주장하면서 여전히 빌드되지 않습니다. 물론 여기에있는 단계를 따랐고 이제 x86으로 설정되어 있으므로 수동으로 편집했고 이제 모두가 다시 행복해졌습니다. 감사합니다!
DaveN59

2
내 프로젝트 파일에 비어 있지 않은 OutputPath가있는 예상 PropertyGroup이 있으며이 오류가 발생했습니다. 내가 알아 차린 유일한 것은이 특정 구성에 대한 PropertyGroup이 파일의 루트 노드 아래에있는 첫 번째 요소 였고 Condition 속성에는 다른 모든 구성 조건과 달리 선행 및 후행 공백이 없다는 것입니다. 이 시점에서이 요소를 다른 구성 중 일부 아래로 이동하고 (중요한 이유는 확실하지 않고 그냥 시도하는 것이 었습니다) 조건에 공백을 추가했습니다. 이 후 작동했습니다. 무엇이 차이를 만들 었는지 확실하지 않습니다.
Seth Flowers

2
나는 또 다른 문제가 있었다. SlowCheetah를 사용하여 Windows 프로젝트에 대한 구성 변환을 만들었습니다. 구성에는 @sethflowers가 제안한 것과 같은 공백이 없었습니다. 나는 그것들을 추가했지만 도움이되지 않았습니다. 구성 사이에 다른 속성 그룹이 있음을 확인했습니다. 그래서 그것을 분류하고 (단지 프로젝트 구성 속성 그룹 아래에 속성 그룹을 배치했습니다) 문제가 사라졌습니다. 여기에 모든 제안에 감사드립니다. 시간이 절약되었습니다 !!!
Ralph Jansen

7
\ p : Platform = "Any CPU"대신 \ p : Platform = "AnyCPU"로 시도해보십시오. 그것은 나를 형성했습니다! 오랫동안 이것을보고 있었다!
Lee Englestone 2013-10-07

78

빌드 에이전트가 " AnyCPU "(프로젝트 파일에 지정된 한 단어 )가 아닌 " Any CPU "(Visual Studio에 표시된 공백 포함) 플랫폼을 실행하도록 구성되었을 때도이 오류가 발생했습니다 .


5
동일한 문제가 발생했습니다. 솔루션 수준에서는 "Any CPU"가 유효하지만 프로젝트 수준에서는 "AnyCPU"인 것 같습니다. 즉, msbuild myproj.sln /p:Configuration=Debug /p:Platform="Any CPU"괜찮 았지만 프로젝트를 빌드 할 때 모든 CPU에서 공간을 생략해야했습니다 msbuild myproj.proj1.csproj /p:Configuration=Debug /p:Platform=AnyCPU. Outputpath 속성 오류를 억제했습니다.
Emil G

2
믿을 수없고, CI 구성을위한 PITA입니다. 나는 며칠 동안 이것으로 어려움을 겪어 왔습니다.
Jeremy Holovacs 2015 년

이 오류는 메인 빌드 서버에서 빌드 할 수없고 내가 선택한 대안이 "AnyCPU"대신 "Any CPU"를 전달했을 때 발생했습니다. 확인 후 MSBUILD 및 기타 소프트웨어의 버전 번호에 약간의 차이가 있습니다. 귀하의 답변을 주셔서 감사합니다,

1
나는 그 공간이 범인이라는 것을 믿을 수 없다!
알렉산드라

36

MSBuild를 처음 사용할 때 동일한 문제가 발생했습니다. 내 해결책은 OutputPath 속성을 확실히 사용하는 것입니다. 이렇게 :

msbuild XXX.csproj /p:OutputPath=bin\Debug.

이것은 TeamCity Azure 클라우드 서비스 빌드에 대한 내 문제를 해결했습니다. +1
starmandeluxe

VSO의 CI 빌드도 마찬가지입니다.
StriplingWarrior

11

우리의 경우 HP 개발자 상자에서 빌드 스크립트를 실행했습니다. HP에는 자체 목적을 위해 설정 한 환경 변수가 있으며 그 중 하나는 PLATFORM입니다 (분명히 "HP Easy Setup"에 사용됨).

PLATFORM 환경 변수 삭제가 작동했습니다.

플랫폼을 지정하여 빌드 스크립트를 미래에 대비할 수도 있습니다
msbuild /p:Platform=AnyCPU.


이것은 내 새 HP 노트북에서 나를 잡았습니다. @Boggin에게 감사합니다. 이것은 나에게 발생하지 않았을 것입니다.
Rob Cooper

9

Visual Studio에서 "Platform = 'BPC'"라고 구체적으로 불평하는 경우 "Platform"환경 변수를 제거하여 쉽게 해결할 수 있습니다.

이 나쁜 소년을 삭제하십시오.

이제 Visual Studio를 다시 시작하면됩니다.


6

" Richard Dingwall "이 암시 한 것처럼 문제는 실제로 " AnyCPU를 읽는 MSBuild 버전 대신 " Any CPU " 의 디스플레이 버전을 사용하는 VS와 관련이 있습니다. "를

빌드 / 새 빌드 정의 또는 빌드 정의 편집-> 프로세스-> 빌드 할 구성으로 이동하여 구성 선택 대화 상자를 열고 " 모든 CPU " 를 선택하는 대신 " 플랫폼 " 에서 " AnyCPU "를 수동으로 추가합니다.


6

말했듯이 OutputPath 를 설정해야하며 .wixproj 파일 에 먼저 배치해야 <Import Project="$(WixTargetsPath)" />합니다.


이 문제는 내 문제와 관련이 있습니다. Wix 프로젝트를 만든 후 새 구성을 추가하고 새 구성이 파일 끝에 추가되었으므로 새 구성에 대한 모든 관련 PropertyGroup이이 가져 오기 후에 배치되어 다른 것들 바로 옆에있는 상단이 저에게 효과적이었습니다.
Eugenio Miró

4

Platform환경 변수를 제거했습니다 (BNB 또는 그와 같은 smth였습니다). 문제가 사라졌습니다.


1
안타깝게도 Platform 환경 변수를 제거한 후에도 전체 재부팅이 필요합니다!
79E09796

4

이 문제가 발생했을 때 오늘 x64 플랫폼을 솔루션에 추가했습니다.

제 경우에는 오류가 다음과 같습니다.

기본 대상에 대해 $ / ProjectDirectory / ProjectName.csproj를 빌드했습니다. c : \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Microsoft.Common.targets (484) : ProjectName.csproj '프로젝트에 대해 OutputPath 속성이 설정되지 않았습니다. 이 프로젝트에 대해 유효한 구성 및 플랫폼 조합을 지정했는지 확인하십시오. 구성 = '디버그'플랫폼 = 'x64'. 솔루션 파일없이 프로젝트를 빌드하려고하고이 프로젝트에 존재하지 않는 기본이 아닌 구성 또는 플랫폼을 지정했기 때문에이 메시지가 표시 될 수 있습니다.

나는 OutputPath이것이 기존의 작동하는 VS 솔루션이기 때문에 괜찮아 야 한다는 것을 알았습니다 . 그래서 다음 힌트로 "구성과 플랫폼의 유효한 조합"으로 이동했습니다.

아하! Visual Studio에서 Configuration='Debug', Platform='x64'. 내 프로젝트 파일을 보면 x64가 가능한 플랫폼 중 하나로 나열되지 않는다는 것을 깨달았습니다. 즉, 아래 항목 (단축)이 있습니다.

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
      <PlatformTarget>x86</PlatformTarget>
      <OutputPath>bin\x86\Debug\</OutputPath>  
      . . .  
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
      <PlatformTarget>x86</PlatformTarget>
      <OutputPath>bin\x86\Release\</OutputPath>    
      . . .
  </PropertyGroup>

간단한 수정 : x64 항목 만 추가하세요!

x86 항목을 복사 / 붙여 넣기하고 x64를 사용하도록 변경했습니다. 또한 x86 빌드를 덮어 쓰지 않도록 경로를 수정했습니다.

  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
      <PlatformTarget>x64</PlatformTarget>
      <OutputPath>bin\x64\Debug\</OutputPath>    
      . . .
  </PropertyGroup>
  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
      <PlatformTarget>x64</PlatformTarget>
      <OutputPath>bin\x64\Release\</OutputPath>    
      . . .
  </PropertyGroup>

3

나는 이것으로 한동안 고생 한 다음 솔루션에서 문제가되는 프로젝트를 언로드, 빌드 및 다시로드 한 다음 MSBuild가 올바르게 작동했습니다.


3

Scott S로서 저는 "Platform"환경 변수삭제 해야했습니다 .

그런 다음 VS를 다시 시작하면 괜찮습니다 : 더 이상 오류 메시지가 없습니다 ...


이것은 Build vNext MSBuild 단계에서 지정한 플랫폼을 삭제했을 때 저에게 효과적이었습니다.
4imble

2

문제는 내 프로젝트 구성과 관련이 있습니다. 시나리오는 다음과 같습니다.

솔루션 A 참조 :

프로젝트 X 참조 프로젝트 Y
프로젝트 Y

솔루션 B (내가 빌드하려는 것) 참조 :

프로젝트 X 프로젝트 Z

내 솔루션은 솔루션 A에 대해 동일한 이름으로 구성을 만들고 다시 빌드 한 다음 솔루션 B를 다시 빌드하는 것이 었습니다. 이로 인해 문제가 해결되었습니다.


1
동일한 오류가 발생했으며이 해결 방법이 저에게 효과적이었습니다. 기본적으로 플랫폼 구성 "Any CPU"로 실버 라이트 프로젝트를 빌드하는 솔루션 플랫폼 구성 "Win32"와 실버 라이트 프로젝트를 호스팅하는 플랫폼 구성 "x86"으로 웹 애플리케이션 프로젝트를 구축했습니다. msbuild가 예상대로 작동하려면 Silverlight 프로젝트 "x86"에 새 프로젝트 플랫폼 구성을 추가해야했습니다 (이전 구성을 기본 구성으로 유지).
Rami A. 2011 년

2

이 같은 오류 메시지가있었습니다. 언로드되고 링커에 필요하지 않은 프로젝트에 대한 참조가 있기 때문에 발생했습니다 (그렇지 않으면 컴파일 타임에 실패했을 것입니다). 문제가되는 참조를 제거하면 문제가 해결되었습니다.


2

필자의 경우 (VS2010) "Build"탭에있는 "OutputPath"상자에서 문자열을 제거하고 공백으로 두었습니다. 그런 다음 솔루션을 다시 빌드했습니다. 빌드가 성공했고 VS가 현재 디렉토리 "./"를 "OutputPath"에 삽입했습니다. 현재 디렉토리 "./"를 내 경로 ( "bin \ x64 \ Release \"-VS가 처음에 불평했던 정확한 폴더 경로라고 말하면 충분 함)으로 바꾸고 다시 빌드가 성공했습니다.


1

제 경우에는 OutputPath가 프로젝트 파일에 속성으로 설정되었습니다. 그러나 언로드, 재로드 및 재 구축이 문제를 해결했습니다.


1

솔루션에 새 솔루션 구성을 추가 할 때 "프로젝트 X에 대해 OutputPath 속성이 설정되지 않았습니다.이 프로젝트에 대해 유효한 구성 및 플랫폼 조합을 지정했는지 확인하십시오. Configuration = 'QA 'Platform ='AnyCPU '. 이 오류는 다른 프로젝트가이 프로젝트에 대한 프로젝트 간 참조를 따르려고하고이 프로젝트가 언로드되었거나 솔루션에 포함되지 않았으며 참조하는 프로젝트가 그렇지 않은 경우에도 나타날 수 있습니다 . 동일하거나 동등한 구성 또는 플랫폼을 사용하여 빌드합니다. ".

제 경우 문제는 오류 설명의 강조 표시된 부분 때문이었습니다. 내 솔루션의 프로젝트 X 부분에 다른 솔루션 (다른 분기)의 ProjectY에 대한 프로젝트 참조가 있습니다.

현재 솔루션에서 ProjectY에 대한 프로젝트 참조를 사용하도록 프로젝트 X를 수정하여이 문제를 해결했습니다. 이것이 비슷한 문제가있는 사람에게 도움이되기를 바랍니다.


0

제 경우에는 문서 하단에 새로운 "PropertyGroup"XML 블록이 생성되었습니다. 나는 다른 "PropertyGroup"태그 다음에 그것을 대체했고 이것은 문제를 해결했다.


0

기존 프로젝트를 참조하는 새 솔루션에서 새 프로젝트를 만들었습니다. 이 오류는 기존 프로젝트 (예 : 프로젝트 1)를 추가하고 프로젝트 1이 참조하는 다른 프로젝트를 추가하지 않고 빌드하려고 할 때 발생합니다.

모든 관련 프로젝트가 새 솔루션에 추가되고 오류가 사라지는 지 확인하십시오.


0

같은 오류가 발생하여 프로젝트 설정을 살펴 보았고 "Build"섹션에 "Build output path"옵션이 있습니다. 그리고 값은 비어 있습니다. 그래서 "bin \"값을 입력하면 오류가 사라졌습니다. 그것은 내 문제를 해결했습니다.


0

OutputPath를 매개 변수로 설정하기로 결정하고 경로가 bin\Release\\다음 과 같으면 다음 \과 같이 끝에 추가하는 것을 기억하십시오 . 그 사실 /p:OutputPath=bin\Release\\\\을 깨닫는 데 시간이 좀 걸렸습니다.


0

나는 같은 문제가 있었다. 나는 그것을 깨끗하게 고치고 프로젝트를 재건했다.


0

나는 같은 문제가 있었고 도움이 된 유일한 해결책은 각 NCrunch 프로젝트에서 수동으로 빌드 구성을 설정하는 것입니다.

각 빌드의 상태와 빌드 실패를 볼 수있는 NCrunch 창을 엽니 다. 빌드에 실패한 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 "Build Settings"아래에있는 "configure selected component"를 클릭하면 "Use build confoguration"속성이 "Debug"로 설정되고 "Use build platform"속성이 다음으로 설정됩니다. 예 : "AnyCPU". (설정 한 빌드 및 구성 설정은 구성 설정에 있어야합니다.)

테스트 프로젝트가 아닌 모든 프로젝트에 대해이 작업을 수행하십시오. 이 후 모든 것이 잘 작동합니다.


0

나는 같은 문제가 있었고 실패한 프로젝트에 누락 된 구성을 추가하여 수정했습니다.

빌드-> 구성 관리자->

구성 열에서 추가

참고 : 이것은 사용자 지정 구성이 있고 새로 생성 된 프로젝트에 구성이 없기 때문입니다.


0

누군가가 자신의 NCrunch 로그에서 이것을 얻고 있다면, 해당 조건에서 해당 값을 사용하여 속성 그룹 앞에PropertyGroup 위치한 'Debug'/ 'Release'및 'AnyCPU'/ 'x86'값을 정의 했는지 확인하십시오 .

<PropertyGroup>
    <!-- this one first -->
    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
    <XXX>...</XXX>
  </PropertyGroup>

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x86'">
    <XXX>...</XXX>
</PropertyGroup>

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'">
    <XXX>...</XXX>
</PropertyGroup>

나를 위해 일했습니다.


0

제 경우에는 사용자 지정 구성이 포함 된 속성 그룹을 표준 구성 아래로 이동하려고했습니다. 그것은 나를 위해 그것을 해결했습니다.


0

VS2015 Professional을 사용하여 다음을 수행했습니다.

프로젝트 'xxxxx.csproj'에 대해 OutputPath 속성이 설정되지 않았습니다. 이 프로젝트에 대해 유효한 구성 및 플랫폼 조합을 지정했는지 확인하십시오.

이것은 또한 디버그 / 릴리스와 다른 타겟 사이의 다중 프로젝트 저글링입니다. 나는 어느 시점에서 빌드 구성을 다루고 있었고 그것이 VS를 엉망으로 만들 수 있다는 것을 알고 있으므로 저장소에서 다시 가져 왔습니다. 여전히 좋지 않습니다. OutputPath가 설정되었으며 더 이상 알려진 양호한 상태와의 차이점이 없으므로 로컬 설치에 확실히 문제가있었습니다.

VS2015 설치 프로그램을 열고 "복구"를 클릭하면 정상으로 돌아갑니다 (적어도 지금까지는!).

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