Win32 빌드, x64 빌드와 ResolveVCProjectOutput 작업?

질문 Win32 빌드, x64 빌드와 ResolveVCProjectOutput 작업?

  • 2012년 3월 7일 수요일 오전 8:17
     
     

    Win32 빌드에서는  "ResolveVCProjectOutput" 작업에 오류가 없는대요.
    x64빌드를 하면 "ResolveVCProjectOutput" 작업에서 오류가 발생합니다. 

    Win32 빌드

    "Microsoft.Build.Tasks.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 어셈블리에서 "ResolveVCProjectOutput" 작업을 사용합니다.
    "ResolveVCProjectOutput" 작업(작업 ID:14)
      VC 프로젝트 참조 "F:\Build\1\DynaX_TeamProject\DynaXTest3\Sources\DynaX\src\chartwnd\chartwnd.vcproj"을(를) 확인하고 있습니다.(작업 ID:14)
      VC 프로젝트 참조 "F:\Build\1\DynaX_TeamProject\DynaXTest3\Sources\DynaX\src\chartwnd\chartwnd.vcproj"이(가) 
    "F:\Build\1\DynaX_TeamProject\DynaXTest3\Binaries\chartwnd.lib"(으)로 확인되었습니다.(작업 ID:14)
    "ResolveVCProjectOutput" 작업을 실행했습니다.(작업 ID:14)

    x64 빌드
    "Microsoft.Build.Tasks.v3.5, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 어셈블리에서 "ResolveVCProjectOutput" 작업을 사용합니다.
    "ResolveVCProjectOutput" 작업(작업 ID:16)
      VC 프로젝트 참조 "F:\Build\1\DynaX_TeamProject\DynaXTest3\Sources\DynaX\src\chartwnd\chartwnd.vcproj"을(를) 확인하고 있습니다.(작업 ID:16)
    MSBUILD : error MSB4018: "ResolveVCProjectOutput" 작업에서 예기치 않은 오류가 발생했습니다. [F:\Build\1\DynaX_TeamProject\DynaXTest3\Sources\DynaX\DynaX.sln]
    MSBUILD : error MSB4018: System.Reflection.TargetException: static이 아닌 메서드에는 대상이 있어야 합니다. [F:\Build\1\DynaX_TeamProject\DynaXTest3\Sources\DynaX\DynaX.sln]
    MSBUILD : error MSB4018:    위치: System.Reflection.RuntimeMethodInfo.CheckConsistency(Object target) [F:\Build\1\DynaX_TeamProject\DynaXTest3\Sources\DynaX\DynaX.sln]
    MSBUILD : error MSB4018:    위치: System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks) [F:\Build\1\DynaX_TeamProject\DynaXTest3\Sources\DynaX\DynaX.sln]
    MSBUILD : error MSB4018:    위치: System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) [F:\Build\1\DynaX_TeamProject\DynaXTest3\Sources\DynaX\DynaX.sln]
    MSBUILD : error MSB4018:    위치: System.Reflection.RuntimePropertyInfo.GetValue(Object obj, BindingFlags invokeAttr, Binder binder, Object[] index, CultureInfo culture) [F:\Build\1\DynaX_TeamProject\DynaXTest3\Sources\DynaX\DynaX.sln]
    MSBUILD : error MSB4018:    위치: System.Reflection.RuntimePropertyInfo.GetValue(Object obj, Object[] index) [F:\Build\1\DynaX_TeamProject\DynaXTest3\Sources\DynaX\DynaX.sln]
    MSBUILD : error MSB4018:    위치: Microsoft.Build.Tasks.ResolveVCProjectOutput.ResolveUsingVCEngineObjectModel(ITaskItem projectRef, String configName, String& resolvedAssemblyPath, String& resolvedImportLibraryPath) [F:\Build\1\DynaX_TeamProject\DynaXTest3\Sources\DynaX\DynaX.sln]
    MSBUILD : error MSB4018:    위치: Microsoft.Build.Tasks.ResolveVCProjectOutput.Execute() [F:\Build\1\DynaX_TeamProject\DynaXTest3\Sources\DynaX\DynaX.sln]
    MSBUILD : error MSB4018:    위치: Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() [F:\Build\1\DynaX_TeamProject\DynaXTest3\Sources\DynaX\DynaX.sln]
    MSBUILD : error MSB4018:    위치: Microsoft.Build.BackEnd.TaskBuilder.ExecuteInstantiatedTask(ITaskExecutionHost taskExecutionHost, TaskLoggingContext taskLoggingContext, TaskHost taskHost, ItemBucket bucket, TaskExecutionMode howToExecuteTask, Boolean& taskResult) [F:\Build\1\DynaX_TeamProject\DynaXTest3\Sources\DynaX\DynaX.sln]
    "ResolveVCProjectOutput" 작업을 실행했습니다. - 실패(작업 ID:16)

    이 오류에 대한 해결 방법은 다음과 같습니다.

    Unfortunatley, this is a bug with MSBuild 4.0 while targeting x64 platform for VC 2008 projects.  The issue here is that VCProjectEngine.dll is not registered for 64-bit registry hive.

    Please define following environment variable which should fix the issue. 

    VC_PROJECT_ENGINE_NOT_USING_REGISTRY_FOR_INIT=1

    제가 영어가 짧아서 잘 모르겠지만 "MSBuild 4.0 버그 이고 시스템 변수를 설정해주문 해결되다" 이거 같거든요 실제로 위와 같이 해서 문제를 해결해구요.

    제가 궁금한건 "VC_PROJECT_ENGINE_NOT_USING_REGISTRY_FOR_INIT" 이 환경변수의 의미가 무엇이냐는겁니다.???


모든 응답

  • 2012년 3월 8일 목요일 오전 1:25
    중재자
     
     

    안녕하십니까? 난소중하닌깐 님,
    Microsoft MSDN의Forum 사이트를 방문해 주셔서 감사합니다.

    문의 하신 ”Win32 빌드, x64 빌드와 ResolveVCProjectOutput 작업?”에 대해 답변드리겠습니다.

    [원인]
    Bug with MSBuild 4.0 while targeting x64 platform for VC 2008 projects
    [해결책]
    VC_PROJECT_ENGINE_NOT_USING_REGISTRY_FOR_INIT=1 로 변경해주셔야합니다.

    [참조자료]
    Team Build error MSB4018: The "ResolveVCProjectOutput" task failed unexpectedly

    제가 문제에 대해 더 알아야 할 것이 있다면 응답 주시면 감사하겠습니다.
    제시해 드린 답변이 도움이 되었기를 바랍니다.
     
    답변이 문제 해결에 도움이 되었다면 답변으로 채택을 부탁드립니다.하지만 문제 해결이 되지 않아서 정확한 답변을 원하는 경우에는 문제의 정보를 더 자세하게 답변으로 제공해주시기 바랍니다.

    • 답변으로 표시됨 Jina LeeModerator 2012년 4월 2일 월요일 오전 2:21
    • 답변으로 표시 취소됨 Jina LeeModerator 2012년 4월 2일 월요일 오전 2:21
    •