development

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

big-blog 2020. 12. 29. 08:21
반응형

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


Jenkins / MSBuild 솔루션을 빌드하면이 오류가 발생합니다.

c:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(483,9): error : 
The OutputPath property is not set for project '<projectname>.csproj'.  Please check to
make sure that you have specified a valid combination of Configuration and Platform 
for this project.  Configuration='Latest'  Platform='AnyCPU'.  You may be seeing this 
message because you are trying to build a project without a solution file, and have
specified a non-default Configuration or Platform that doesn't exist for this project. 
[C:\<path>\<projectname>.csproj]

어떤 아이디어?

편집하다

내 .csproj 파일에 있습니다.

  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Latest|AnyCPU'">
    <OutputPath>bin\Latest\</OutputPath>
  </PropertyGroup>

텍스트 편집기에서 csproj를 열고 속성 그룹 섹션이 있는지 확인합니다. 다음과 같은 모습이어야합니다.

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Latest|AnyCPU' ">
    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <Optimize>false</Optimize>
    <OutputPath>bin\Latest\</OutputPath>
    <DefineConstants>DEBUG;TRACE</DefineConstants>
    <ErrorReport>prompt</ErrorReport>
    <WarningLevel>4</WarningLevel>
    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>
  </PropertyGroup>

'최신'빌드 구성이 있습니까? 위 섹션을 csproj에 추가하지 않으면.


나는 그것이 어떻게 작동하는지 알아 냈습니다 (VS2013 / 2015에서 sln / csproj 속성을 변경하지 않고).

  1. .sln 파일을 빌드하려는 경우 :
    1. /p:ConfigurationPlatforms=Release /p:Platform="Any CPU"
  2. .csproj 파일을 빌드하려는 경우 :
    1. /p:Configuration=Release /p:Platform=AnyCPU
      1. "Any CPU"주목AnyCPU
  3. 코드 분석, fxcop, 테스트 커버리지 (NCover) 대상을 확인하고 MSBUILD가 제대로 위치해야합니다. 제 경우에는 :
    1. C:\Windows\Microsoft.NET\Framework64\v4.0.30319 그러나 마이크로 소프트가 코드 기반 :: AMD (크로스 plt, x86 및 x64 옵션 포함) 및 Windows (크로스, x86, x64)를 빌드하기 위해 6 cmd 옵션을 제공했음을 알 수 있듯이 다를 수 있습니다. JIT (PreJIT ngen.exe, econoJIT 일 수 있음)

이 문제 해결 이상은 power shell + msbuild를 사용하여 처리 할 수 ​​있다고 생각합니다. 누군가에게 도움이 될 수 있습니다 ...


perlyking에서 언급했듯이 csproj XML을 편집하는 대신 다음은 나를 위해 일했습니다. 내가 사용한 단계는 다음과 같습니다.

  1. 프로젝트 속성을 엽니 다.
  2. 빌드 탭을 선택합니다.
  3. 출력 섹션에서 출력 경로가 설정되었는지 확인합니다. (설정하지 않은 경우 프로젝트를 저장하면 작동합니다).
  4. 설정된 경우 출력 경로의 "찾아보기 ..."버튼을 클릭합니다.
  5. 폴더 선택 대화 상자가 열리면 파일 브라우저에서 한 단계 위로 이동 한 다음 출력 폴더를 다시 선택하고 "폴더 선택"버튼을 클릭합니다.
  6. 프로젝트 속성을 저장하면 작동합니다.

@James가 말한 내용을 추가하기 위해 VS2013에서 프로젝트 컴파일 속성을 보면 빌드 출력 경로 지정 되었음을 알았습니다 . 그러나 .csproj파일을 직접 조사했을 때 OutputPath관련 빌드 구성에 대한 요소가 누락되었습니다. 그래서 VS에서 출력 경로에 대한 사소한 편집을 간단하게 만들고 뒤집은 다음 저장하고 프로젝트 파일에 값을 넣은 다음 빌드 할 수있었습니다.


웹 프로젝트를 게시 할 때만이 오류가 발생했습니다. 게시 프로필을 설정할 때 실수로 잘못된 빌드 구성을 선택했습니다.


나는 같은 문제가 있었다. 명령 줄을 사용하여 Windows 플랫폼을 업데이트했습니다. 현재 Windows@5.0.0 버전으로 업데이트되었습니다. 그런 다음 "SQLite3.UWP.vcxproj"파일 이름을 검색해야합니다. "v141"을 "v140"으로 변경해보십시오. 현재 저는 Visual Studio 2015 전문가를 사용하고 있습니다. Visual Studio 2017 인 경우 SQLite3.UWP.vcxproj 파일에서 버전을 변경할 필요가 없습니다.


제 경우에는 출력 폴더에 점이 포함되어있어 현재 디렉토리를 기준으로이 오류가 발생했습니다. 문제는 점을 제거하여 해결되었습니다.

위반 사항 Build output path은 다음과 같습니다.

.\bin\Output

문제는 다음과 같이 변경하여 해결되었습니다.

bin\Output

빌드 출력 경로에서 찾을 수 있습니다 Build프로젝트 속성의 탭, 각각의 조합에 대해 다른 경로가 Configuration하고 Platform.


MSBuild의 일부 서비스 패브릭에 대한 문제가있었습니다.

첫 번째 단계는 영향을받는 각 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 속성을 가져와 빌드 탭을 선택한 다음 플랫폼 대상을 x64로 설정하는 것입니다.

두 번째 단계는 구성 관리자로 이동하여 디버그 및 릴리스에 x64도 사용하도록 각 프로젝트를 설정하는 것이 었습니다.

이것은 VS2017 프로젝트를위한 것입니다.


몇 가지 프로젝트에서 동일한 문제가 발생했습니다. 프로젝트에 새 구성을 추가 한 후 PropertyGroup이 프로젝트 파일의 맨 끝에 추가되었습니다.

PropertyGroup을 다른 모든 구성 PropertyGroup의 오른쪽으로 이동하면 문제가 해결되었습니다.

이게 도움이 되길 바란다.


The OutputPath property is not set for project error message will appear if a Platform environment variable exists (as seems to happen on HP laptops) and the target of MSBuild contains a reference to another Visual Studio project.

After renaming the Platform environment variable my build now works.

It seems the parameter /p:Platform="Any CPU" gets applied to the target solution but doesn't 'carryover' to referenced projects. In my instance, the error message indicated referenced projects were using the environment variable Platform=MCD.


This error is misleading and can be caused by a different issue. Check the entire message:

The OutputPath property is not set for project 'myproject'.  Please check to make sure that you have specified a valid combination of Configuration and Platform for this project.  Configuration='myconfig'  Platform='AnyCPU'.  This error may also appear if some other project is trying to follow a project-to-project reference to this project, this project has been unloaded or is not included in the solution, and the referencing project does not build using the same or an equivalent Configuration or Platform.

My build configuration was missing this node in the csproj:

<PlatformTarget>AnyCPU</PlatformTarget>

Despite saying AnyCPU was the selected Platform in the dropdown, the actual xml was not there. Adding it fixed the mismatch between the project and the other project it was referencing.


I had two project configs, Debug and Release. When the Release build was used, it was throwing this error. The issue I found was that in the csproj file, the Debug config was near the top and the Release config was all the way at the bottom.

Manually moving the Release build just below the Debug build fixed it.

I'm assuming I did something incorrectly when setting up my build configurations because this doesn't feel like something I should have had to manually adjust.


I was using MSBuild to build multiple .sln files, and had added a new step to build a .csproj file as well, when I encountered this error.

@Saurabh's answer highlighted the root of the problem. However, when fixing it, adding /p:Platform=AnyCPU to the MSBuild Arguments section didn't fix it. I actually needed to update the Platform value on the build step.

All other build steps were using the $(BuildPlatform) variable value (which happened to be "any cpu", with a space in it).

(Had I been building multiple .csproj files, I probably would have created a second variable for the AnyCPU platform.)

Screenshot of Visual Studio Build step

ReferenceURL : https://stackoverflow.com/questions/15134384/the-outputpath-property-is-not-set-for-project

반응형