2017-11-19 8 views
1

Visual Studio 코드를 사용하여 C++ 프로젝트를 작성하려고합니다.MsBuild로 Visual Studio 코드 빌드

자동 빌드를 위해 task.json을 만들었습니다.

{ 
    // See https://go.microsoft.com/fwlink/?LinkId=733558 
    // for the documentation about the tasks.json format 
    "version": "2.0.0", 
    "tasks": [ 
     { 
      "label": "build", 
      "type": "shell", 
      "command": "msbuild", 
      "args": [ 
       // Ask msbuild to generate full paths for file names. 
       "/property:GenerateFullPaths=true", 
       "/t:build" 
      ], 
      "group": "build", 
      "presentation": { 
       // Reveal the output only if unrecognized errors occur. 
       "reveal": "silent" 
      }, 
      // Use the standard MS compiler pattern to detect errors, warnings and infos 
      "problemMatcher": "$msCompile" 
     } 
    ] 
} 

다음과 같은 예외가 발생합니다.

MSBUILD : error MSB1003: Specify a project or solution file. The current working directory does not contain a project or solution file. 
The terminal process terminated with exit code: 1 

빌드 작업은 MSBuild를 기반으로합니다. MSBuild는 빌드를 위해 .vcxproj 파일이 필요합니다.

nuget 또는 msbuild가 .vcxproj를 생성 할 수있는 명령이 있습니까?

답변

-1

나는 당신을 위해 하나를 생성하는 도구의 인식 아니지만,이 MSDN 기사는 당신이 필요로하는 무엇을 줄 것이다 :

https://msdn.microsoft.com/en-us/library/dd293607.aspx

작업 프로젝트의 전체 샘플은 다음과 같습니다

<Project DefaultTargets="Build" ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <ItemGroup> 
    <ProjectConfiguration Include="Debug|Win32"> 
     <Configuration>Debug</Configuration> 
     <Platform>Win32</Platform> 
    </ProjectConfiguration> 
    <ProjectConfiguration Include="Release|Win32"> 
     <Configuration>Release</Configuration> 
     <Platform>Win32</Platform> 
    </ProjectConfiguration> 
    </ItemGroup> 
    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.default.props" /> 
    <PropertyGroup> 
    <ConfigurationType>Application</ConfigurationType> 
    <PlatformToolset>v120</PlatformToolset> 
    </PropertyGroup> 
    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> 
    <ItemGroup> 
    <ClCompile Include="main.cpp" /> 
    </ItemGroup> 
    <ItemGroup> 
    <ClInclude Include="main.h" /> 
    </ItemGroup> 
    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Targets" /> 
</Project> 

ClCompile Include 속성에서 와일드 카드를 사용하면 프로젝트 파일을 계속 업데이트 할 필요가 없습니다.

https://msdn.microsoft.com/en-us/library/ms171453.aspx

+0

이 링크는 질문에 대답 할 수 있지만, 여기에 해답의 본질적인 부분을 포함하고 참조 할 수 있도록 링크를 제공하는 것이 좋습니다 : MSBuild에서 항목에 대한 자세한 내용은

이 MSDN 문서를 참조하십시오. 링크 된 페이지가 변경되면 링크 전용 답변이 유효하지 않게 될 수 있습니다. - [검토 중] (리뷰/저품절 포스트/18006086) –

+0

xml 구성을 직접 작성해야합니까? Microsoft는 Visual Studio를 제외하고이 파일을 생성하는 도구를 제공합니까? –

+0

아는 한, 당신을 위해 그것을 생성 할 수있는 도구가 없습니다. 샘플을 사용하여 응답을 업데이트했습니다. 붙여 넣기 만 복사하면 필요한 파일을 포함하도록 ClInclude를 업데이트 할 수 있습니다. – mageos