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

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’



답변

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

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

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

나에게 결함처럼 들린다.


답변

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

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

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


답변

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

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

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


답변

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

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

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


답변

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


답변

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

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

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

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


답변

빌드 파이프 라인에서 .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”를 사용하려는 이유는 나에게 미스테리이지만이 해킹은 작동합니다.