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


120

Visual Studio 2008의 x86 디버그 모드에서 프로젝트를 컴파일하려고 할 때이 오류가 발생합니다. 불만을 제기 한 프로젝트의 속성 그룹을 보면 출력 경로가 설정되어 있습니다.

다음은 해당 .csproj 파일에 대한 속성 그룹 섹션입니다.

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
  <DebugSymbols>true</DebugSymbols>
  <OutputPath>bin\x86\Debug\</OutputPath>
  <DefineConstants>DEBUG;TRACE</DefineConstants>
  <BaseAddress>285212672</BaseAddress>
  <FileAlignment>4096</FileAlignment>
  <DebugType>full</DebugType>
  <PlatformTarget>x86</PlatformTarget>
 <ErrorReport>prompt</ErrorReport>

아무도 이것에 대해 밝힐 수 있습니까?

참고 :이 디버그 및 모든 CPU를 컴파일하면 작동했습니다.

업데이트 됨 : 오류 1이 프로젝트에 대해 OutputPath 속성이 설정되지 않았습니다. 유효한 구성 / 플랫폼 조합을 지정했는지 확인하십시오. 구성 = '디버그'플랫폼 = 'x86'


좋아, 어떤 구성과 플랫폼을 사용하십니까? 디버그 + x86 또는 다른 것?
Ondrej Tucny

예 VS 구성 관리자는 디버그 + x86을 선택합니다
Amzath

@DmitryShkuropatsky 업데이트 오류 메시지
Amzath

1
정확 해 보입니다. 솔루션에 오류를 일으킬 수있는 다른 프로젝트가 있습니까?
Dmitry Shkuropatsky

@DmitryShkuropatsky 당신이 맞아요 그것은 문제가있는 또 다른 프로젝트였습니다. 하지만 VS는 컴파일중인 프로젝트에 대해 불평했습니다
Amzath

답변:


214

Visual Studio에서 ConfigurationManager를 통해 새 구성을 추가 한 후 똑같은 오류가 발생했습니다.

전체 솔루션 (및 각 프로젝트)에 대해 'Production'구성이 추가되었을 때 OutputPath 요소 .csproj 파일에 추가 되지 않은 것으로 나타났습니다 .

수정하기 위해 프로젝트 속성의 빌드 탭으로 이동하여 OutputPath를 \bin\Production\에서 \bin\Production( 뒤로 삭제됨 \)으로 변경하고 변경 사항을 저장했습니다. 이로 인해 .csproj 파일에 OutputPath 요소가 강제 생성되고 프로젝트가 성공적으로 빌드되었습니다.

나에게 결함처럼 들린다.


7
이 수은 오류에 대한 좋은 캐치. 하나의 슬래시가 그렇게 큰 차이를 만들 수 있다고는 상상도 못했을 것입니다. 좋은 답변 배지가 있습니다.
ouflak

8
내 경우에는, 차이를 PROJ 파일을 구축 any cpu하고하는 것은 anycpu문제,하지만 귀하의 게시물이 날 것을 볼 수있었습니다.
Joshua Drake

2
감사합니다 Roman 당신이 내 하루를 저장했습니다 ... 당신의 대답을 100 번 찬성 할 수 있다면! :)
Martin

2
방금 VS 2017 v15.6.6에서이 문제를 만났습니다. 베이컨이 저장되었습니다. 감사합니다!
Angrist

1
@Joshua Drake, 이것은 VSTS를 사용할 때 중요한 문제입니다. Visual Studio 온라인은 'any cpu'를 사용하고 로컬 Visual Studio는 'anycpy'를 사용합니다. 빌드 스크립트에 중요합니다.
FrankyHollywood

27

찾을 수없는 어셈블리를 참조하는 프로젝트가 솔루션에있는 경우 VS 2008에서이 오류를 볼 수 있습니다. 어셈블리가 솔루션의 일부는 아니지만 그래야하는 다른 프로젝트에서 가져온 경우 발생할 수 있습니다. 이 경우 솔루션에 올바른 프로젝트를 추가하기 만하면 문제가 해결됩니다.

솔루션에있는 각 프로젝트의 참조 섹션을 확인하십시오. 그 옆에 빨간색 x가있는 참조가 있으면 문제를 찾은 것입니다. 해당 어셈블리 참조는 솔루션에서 찾을 수 없습니다.

오류 메시지가 약간 혼란 스럽지만 여러 번 보았습니다.


2
내 경우에는 그것은이었다 "노란색 경고"
AXMIM

26

WiX를 사용하는 경우 다음을보십시오 (버그가 있습니다). http://www.cnblogs.com/xixifusigao/archive/2012/03/20/2407651.html

때로는 새로운 빌드 구성이 .wixproj파일 아래에 추가됩니다. 즉, 다른 관련없는 XML 요소에 의해 형제 구성 정의와 분리됩니다.

빌드 구성을 정의 .wixproj하는 모든 <PropertyGroup>섹션이 서로 인접하도록 파일을 편집하기 만하면 됩니다. ( .wixprojVS2013에서 편집하려면 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 프로젝트를 언로드 한 후 다시 마우스 오른쪽 버튼을 클릭-> Edit YourProject.wixproj. 파일을 편집 한 후 다시로드합니다.)


1
감사합니다.이 문제가 해결되었습니다. 프로젝트에 더 많은 구성을 추가할수록 이상한 동작이 많이 발생했습니다. 프로젝트 파일을 정리하자마자 모든 것이 잘 작동했습니다. (?이 버그는 최초의 위대한 ... 2012 년보고)
Kirschi

이뿐만 아니라 나를 위해 그것을 고정 주셔서 감사합니다
PeterD

15

.csproj 파일의 시작 부분에 다음 줄을 가깝게 이동했기 때문에 이런 일이 발생했습니다.

  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets"/>

Configuration | Platform을 정의하는 PropertyGroups 뒤에 배치해야합니다.


11

프로젝트의 Visual Studio에 표시된 오류 (A)에는 문제가 없습니다. 각 프로젝트의 빌드 라인별로 출력 창을 살펴보면 프로젝트 A에서 어셈블리로 언급 된 다른 프로젝트 (B)에 대해 불평하고 있다는 것을 알았습니다. 프로젝트 B가 솔루션에 추가되었습니다. 그러나 프로젝트 A에서 다른 위치의 어셈블리 참조로 대신 프로젝트 참조로 언급되지 않았습니다. 이 위치에는 플랫폼 AnyCpu 용으로 컴파일 된 어셈블리가 포함되어 있습니다. 그런 다음 프로젝트 A에서 어셈블리 참조를 제거하고 프로젝트 B를 참조로 추가했습니다. 컴파일을 시작했습니다. 이 수정이 어떻게 작동했는지 확실하지 않습니다.


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

AnyCPU (공간 없음)도 저에게 효과적이었습니다. 감사합니다 리.
willem

1
"Path to solution or packages.config"를 .sln에서 .vbproj로 변경 한 후 TFS 2017에서 빌드 프로세스를 실행하는 동안 오류가 발생했습니다. BuildPlatform을 AnyCPU로 변경하면 저에게도 효과적이었습니다. 여기 "플랫폼"아래의 참고 사항을 참조하십시오. docs.microsoft.com/en-us/vsts/build-release/tasks/build/…
Mr.Zzyzzx

2
제 경우에는 TFS에서 빌드를 시작할 때 "any cpu"BuildPlatform의 기본값이였습니다. "AnyCPU"문제 를 해결하기 위해 변경했습니다 .
XouDo

이것은 2020 년입니다. AnyCPU 대 Any CPU는 여전히 문제가됩니다. 나는 VS2019를 사용하고 있으며 여전히 새로운 프로젝트에서 이것을 얻습니다. MS 왜 개발자 커뮤니티를 처벌하고 있습니까?
Christian

9

동일한 오류가 발생했지만 다른 솔루션의 참조 된 어셈블리에 존재하지 않는 새 구성을 솔루션에 만들었 기 때문에 문제가 발생했습니다.

이 문제는 관련 솔루션을 열고 여기에 새 구성을 추가하여 해결할 수 있습니다.

이 게시물은 솔루션 내의 모든 프로젝트에 올바른 구성이 있는지 이미 확인한 후 참조 된 어셈블리를 확인하는 아이디어를 제공했습니다.

http://gabrielmagana.com/2010/04/solution-to-the-outputpath-property-is-not-set-for-this-project/


7

빌드 파이프 라인에서 .sln 대신 .csproj를 빌드하도록 설정 한 후 Azure DevOps의 출력으로이 문제가 발생했습니다.

나를위한 해결책 : 영향을받는 프로젝트의 .csproj를 편집 한 다음 전체 복사

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCpu' ">

노드에 붙여넣고 다음과 같이 첫 번째 줄을 변경합니다.

    <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|any cpu' ">

그 이유는 제 경우에는 오류가

Please check to make sure that you have specified a valid combination of Configuration and Platform for this project.  Configuration='release'  Platform='any cpu'.  

Azure가 기본 "AnyCpu"대신 "모든 CPU"를 사용하려는 이유는 나에게 미스테리이지만이 해킹은 작동합니다.


귀하의 아이디어를 따르면 제 경우에는 프로젝트를 변경할 필요가 없었지만 DevOps의 Visual Studio 빌드 단계에서 AnyCpu 값과 함께 변수를 사용하도록 구성 필드를 설정했습니다.
donatasj87

@ donatasj87이 필드의 전체 값을 게시 해 주시겠습니까?
Jay

1
전체 값은 정확히 동일하며 TFS 빌드에서도 작동합니다. .csproj 파일에 설정된 값과 일치하면됩니다. 이 그림에서 볼 수 있습니다 pasteboard.co/JbdvBT5.png을
donatasj87

4

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


3

나는 가지고있다:

  1. 문제가있는 프로젝트마우스 오른쪽 버튼으로 클릭 -> 프로젝트 언로드
  2. 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 * .csproj 편집을 선택합니다.
  3. 특정 이름 및 타겟팅 플랫폼에서 작동하는 기존 구성의 구성을 복사하여 붙여 넣습니다 ( Release | x64가 있음 ).

    <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|x64'">
      <OutputPath>bin\x64\Release\</OutputPath>
      <DefineConstants>TRACE</DefineConstants>
      <Optimize>true</Optimize>
      <DebugType>pdbonly</DebugType>
      <PlatformTarget>x64</PlatformTarget>
      <ErrorReport>prompt</ErrorReport>
      <CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
      <Prefer32Bit>true</Prefer32Bit>
    </PropertyGroup>
  4. 프로젝트를 마우스 오른쪽 버튼으로 클릭 -> 프로젝트 다시로드
  5. 프로젝트 / 솔루션 재 구축

3

MSBuild를 사용하여 명령 줄에서 프로젝트를 컴파일하려고 할 때만이 오류가 발생하는 경우 (제 경우와 같이) 해결책은 .NET Framework와 같은 인수를 사용하여 MSBuild에 수동으로 출력 경로를 전달하는 것 /p:OutputPath=MyFolder입니다.


2

또 다른 미친 가능성 : Branch \ Main, Main 및 Release를 나란히 배치하는 간단한 소스 제어 배열을 따르고 어떻게 든 Branch \ Main 대신 Main에서 기존 프로젝트를 추가하는 경우 (작업 솔루션이 Branch \라고 가정하면 Main),이 오류가 표시 될 수 있습니다.

해결책은 간단합니다. 올바른 프로젝트를 참조하십시오!


2

프로젝트를 솔루션에 추가 한 다음 동일한 솔루션의 다른 프로젝트에서 참조 할 때이 문제가 발생했습니다. 참조 위에 노란색 경고 아이콘이 표시되고 경로가 비어 있음을 알 수 있습니다.

솔루션은 @Amzath가 제안한 것과 유사했으며 내 프로젝트는 다른 대상 프레임 워크로 컴파일되었습니다. .NET 4.0 대 4.5.


2

제 경우에는 앱의 빌드 주소가 꺼진 다른 컴퓨터로 설정되었으므로 전원을 켜고 VS를 다시 시작하면 문제가 해결되었습니다.


2

또 다른 원인 : 프로젝트 A의 프로젝트 참조를 솔루션 X의 프로젝트 B에 추가합니다. 그러나 프로젝트 B를 솔루션 Y에 추가 할 때까지 이미 프로젝트 A가 포함 된 솔루션 Y는 이제 중단됩니다.


2

새 구성을 추가하고 "디버그"및 "릴리스"구성을 삭제 한 후에도 동일한 문제가 발생했습니다. 제 경우에는 cmd 파일을 사용하여 빌드 및 게시 프로세스를 실행했지만 동일한 오류가 발생했습니다. 나를위한 솔루션 : csproj 파일에서 다음을 수행하십시오.

<Configuration Condition=" '$(Configuration)' == '' ">Debug< /Configuration>

명시 적으로 지정하지 않은 경우 구성을 "디버그"로 설정했습니다. 노드 값을 "디버그"에서 사용자 지정 구성으로 변경 한 후 모든 것이 원활하게 작동했습니다. 이것이 또한 이것을 읽는 사람에게 도움이되기를 바랍니다 :)


이 솔루션에 대한 자세한 내용은이 포럼 게시물에 언급되어 있습니다. social.msdn.microsoft.com/Forums/vstudio/en-US/…
Sunny Tambi

2

나는 똑같은 문제가 있었다. .wixproj를 편집하여 모든 <PropertyGroup Condition=" '$(Configuration)|$(Platform)' ... > 요소가 나란히 있도록 .

내 문제가 해결되었습니다.


1

내가 사용하고 있던 WiX 프로젝트는 전체적으로 구성 관리자에서 설정되었습니다 x64. 솔루션에 대한 사용자 지정 작업 프로젝트를 만들 때 모든 항목 x86.csproj파일 내로 기본 설정되었습니다 . 그래서 프로젝트를 언로드하고 모두 x86를 으로 변경하여 편집하고 x64, 저장하고, 다시로드하고, 그 이후로 이동하는 것이 좋습니다.

왜 이렇게해야하는지 이해가 안 돼요. 구성 관리자는 x64로 빌드하도록 설정되었지만 csproj파일에 설정되지 않았습니다.


0

여기에 게시 된 다른 모든 제안을 시도한 후 해결책은 .csproj파일 에서 다음 섹션을 제거하는 것이 었습니다 .

  <ItemGroup>
    <Service Include="{808359B6-6B82-4DF5-91FF-3FCBEEBAD811}" />
  </ItemGroup>

분명히 원래 프로젝트의이 서비스 (로컬 머신에서 사용할 수 없음)는 컴파일에 필수적인 것은 아니지만 전체 빌드 프로세스를 중단했습니다.


0

내 프로젝트에 새 플랫폼을 추가 한 후이 문제가 발생했습니다. 제 경우에는 .csproj 파일이 Perforce 소스 제어하에 있었고 읽기 전용이었습니다. 나는 그것을 확인했지만 VS는 그것을 다시 시작할 때까지 변경 사항을 포착하지 못했습니다.


0

Xamarin 프로젝트에서 비슷한 문제가 발생했습니다. 드물지만 다른 사람이 문제를 겪고있는 경우입니다. 내 프로젝트 구조는 다음과 같습니다.

  • xamarin.Android 프로젝트에는 xamarin.android.library 프로젝트의 참조가 있습니다.
  • android.library 프로젝트의 일부 코드를 사용하여 플러그인을 만들었습니다.
  • 이제 여기에 문제가 있습니다. xamarin.android 라이브러리 프로젝트에 프로젝트 참조 또는 너겟 설치를 추가하는 경우. 이 오류가 발생합니다. 개발자는 코드가 Android.Library 프로젝트 내부에 있다고 가정하고이 프로젝트에서 새 플러그인을 참조해야합니다. 아니!
  • 기본 Android 프로젝트에 대한 참조를 추가해야합니다. 플러그인-> 라이브러리-> 메인 프로젝트 출력이 생성되지 않기 때문입니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.