2013-05-22 4 views
1

이것은 VS2012의 버그 인 것으로 보이지만 해결 방법이 있는지 또는 잘못된 것이 있는지 설명 할 수 있는지 궁금합니다. 나는 vs2012 here에서 간단한 KMDF 드라이버를 만드는이 페이지를 따라 갔다. 빌드하기 전에 드라이버 패키지 프로젝트의 출력 디렉토리를 "$ (SolutionDir) Output \ $ (ConfigurationName) \"로 설정했습니다. 가장 큰 차이점은 경로에 "출력"을 추가한다는 것입니다.x64에서 잘못된 출력 디렉토리를 사용하는 VS2012 드라이버 패키지

타겟팅 Win32를 구축하면 정상적으로 작동하며 모든 것이 예상대로됩니다. 그러나 x64 대상을 만들면 "$ (SolutionDir) $ (ConfigurationName) \"로 출력됩니다. 출력 디렉토리에 무엇을 입력하더라도 항상 SolutionDir에서 시작됩니다.

출력 디렉토리를 선택할 때 매크로를 클릭하면 OutDir이 실제로 출력되는 위치이며 프로젝트 속성의 "출력 디렉터리"에 지정한 것과 일치하지 않습니다. OutDir을 재정의하는 다른 것이 있습니까? .vcxproj 파일에서 OutDir 설정을 시도했지만 여전히 동일하게 동작합니다.

+1

간단한 설명은 Win32 구성에 대한 설정 만 변경하고 x64 구성에 대해서는 다시 설정하지 않은 것입니다. –

+0

아니요, Win32와 x64 모두에 대해 출력 설정이 있습니다. – Retik

+0

Visual Studio 2013에서 Win32 및 x64 (Win32에서 작동하지 못함)에 대해이 문제가 발생합니다. 누구든지 해결 했습니까? – MrD

답변

0

이 문제가있는 사람; 나는 나 자신을위한 해결책을 발견했다.

프로젝트 파일 (.vcxproj 파일)을 수동으로 편집해야합니다.

당신이 줄 찾을 수

: 다음과 같이

<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> 

이동 바로 그 선 아래 OUTDIR의 정의를 포함하는 속성 그룹을 내 설정에

<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> 
<PropertyGroup Label="Globals"> 
    <OutDir>$(SolutionDir)outbin\$(Configuration)\$(Platform)\</OutDir> 
    <OutputPath>$(SolutionDir)outbin\$(Configuration)\$(Platform)</OutputPath> 
</PropertyGroup> 

은 Microsoft .Cpp.props가 해당 경로를 덮어 쓰고 있으므로 우선 포함되도록하고 거기에 구성된 내용을 덮어 씁니다.

관련 문제