2012-11-16 74 views
0

以下主要想通過MSBuild的學習有關MSBuild項目文件編譯安思C90

#include <stdio.h> 

int main (int argc, char *argv[]) 
{ 
    char Buffer[2000]; 
    printf("TEST"); 
    gets(Buffer); 
} 

一個批處理文件進行編譯調用的MSBuild:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild main.vcxproj 
pause 

的MSBuild項目文件如下。

<?xml version="1.0" encoding="utf-8"?> 
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    <ItemGroup Label="ProjectConfigurations"> 
    <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" /> 
    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" /> 
    <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> 
    <ItemGroup> 
    <ClCompile Include="main.c" /> 
    </ItemGroup> 
</Project> 

整個設置工作到目前爲止,但我需要找到一個很好的來源,以幫助我瞭解更多有關msproject文件。 我想學習多種東西。我怎樣才能:

  • 擺脫「導入」 oprtions和定義進口配件自己
  • 使用命令行參數來編譯一組文件...(%PARAM%.C%PARAM%TEST .C,...)
  • 使用project文件來啓動immediatelly程序(%PARAM%將Test.exe)
  • 編譯多個目標,...發佈,調試等
  • 編譯後
  • 副本:子項目/釋放/%param%.obj - > c:\ accurateVersion \%param%.obj
  • r之前清理ebuilding

回答

1

有一本很棒的書,裏面有大量的示例代碼來完成你所說的一切。

Inside the Microsoft® Build Engine: Using MSBuild and Team Foundation Build

這裏是你如何可以調用乾淨,然後構建目標,也有它編譯的調試和發佈配置。 C:\ WINDOWS \ Microsoft.NET \框架\ v4.0.30319 \的MSBuild main.vcxproj /噸:清潔;構建/號碼:配置=調試;發佈/ P:平臺=的Win32

副本任務:

<ItemGroup> 
    <MySourceFiles Include="c:\MySourceTree\**\*.*"/> 
</ItemGroup> 

<Target Name="CopyFiles"> 
    <Copy 
     SourceFiles="@(MySourceFiles)" 
     DestinationFiles="@(MySourceFiles->'c:\MyDestinationTree\%(RecursiveDir)% (Filename)%(Extension)')" 
/> 

此鏈接可能會幫助您解決一些其他問題。

Walkthrough: Using MSBuild to Create a Visual C++ Project