我试图将TFS和MSBuild用作非.NET项目的构建和源代码控制。该项目包含一系列单独的.skbsrc文件,每个文件都编译成.skb文件。我试图弄清楚是否有可能以某种方式使用MSBuild来构建这些文件。
说我在msdn网站上使用这个例子:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Compile Include="testfile.skbsrc" />
</ItemGroup>
<Target Name="Build">
<Csc Sources="@(Compile)"/>
</Target>
</Project>
Csc显然用于C#代码,并运行csc.exe程序。有没有办法可以为我自己的编译器(skbuilder)创建一个这样的块,所以我可以运行:
<Skbuilder Sources="@(Compile)" />
反过来会运行
>skbuilder testfile.skbsrc
如果msbuild可以实现这一点,那么有人可以发布一个例子吗?我在搜索中找不到任何内容。
非常感谢你。
答案 0 :(得分:3)
您可以在msbuild中创建自定义任务来执行此操作。 "CSC"是C#中的默认任务,因此您需要为您的exe实现类似的任务。
这个MSDN article解释了如何为msbuild编写任务。
答案 1 :(得分:3)
查看Exec Task。
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<SourceFiles Include="*.skbsrc"/>
</ItemGroup>
<Target Name="Build">
<Exec Command="skbuilder "%(SourceFiles.Identity)""/>
</Target>
</Project>
您还需要将参数传递给您的skbuilder程序,告诉它将其输出到$(OutDir)目录或使用复制任务将* .skb传递给$(OutDir) 。在参数周围使用引号,因为TFS工作空间路径中包含空格。
最后,您可以在不使用TFS的情况下在自己的计算机上进行测试,方法是创建一个简单的.BAT文件:
set PATH=%CD%;C:\Windows\Microsoft.NET\Framework\v4.0.30319
msbuild build.proj > build.log