我一直在尝试编写一个MSBuild任务,将CoCo/R .ATG文件“编译”成C#文件,然后将其编译成可执行文件,以取代预构建事件。
我已经成功实现了.ATG -> .cs的过程,但是由于生成的.cs文件没有被编译,所以似乎出了些问题。
如果我再次修改.ATG文件,则“旧”的.cs文件似乎会被编译,然后生成新的文件。
我相当确定我遗漏了某些东西,需要通知其他构建过程这些文件已更改。
我已经成功实现了.ATG -> .cs的过程,但是由于生成的.cs文件没有被编译,所以似乎出了些问题。
如果我再次修改.ATG文件,则“旧”的.cs文件似乎会被编译,然后生成新的文件。
我相当确定我遗漏了某些东西,需要通知其他构建过程这些文件已更改。
以下是我在Visual Studio 2010项目中包含的目标定义。
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<AvailableItemName Include="BuildATG" />
</ItemGroup>
<PropertyGroup>
<CoreBuildDependsOn>
BuildATGTarget;
$(CoreBuildDependsOn)
</CoreBuildDependsOn>
</PropertyGroup>
<Target Name="BuildATGTarget" Inputs="@(BuildATG)" Outputs="@(BuildATG -> '%(RelativeDir)Parser.cs')">
<Exec Command="Coco.exe %(BuildATG.Identity)" Outputs="%(BuildATG.RelativeDir)Parser.cs" />
</Target>
</Project>
我完全不了解MSBuild,因此任何建议/指针都将不胜感激。