Antlr有一個example of a process可用於將生成的代碼添加到項目。這具有顯示嵌套在源文件下的文件的優點,儘管添加起來更復雜。
需要添加的項目組與待從所生成的文件,例如:
<ItemGroup>
<ServiceDescription Include="MyService.txt"/>
</ItemGroup>
然後添加要產生包含源代碼的其餘部分的的ItemGroup的CS文件。
<ItemGroup>
...
<Compile Include="Program.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
...etc..
<Compile Include="MyService.txt.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>MyService.txt</DependentUpon> <!--note: this should be the file name of the source file, not the path-->
</Compile>
</ItemGroup>
然後最後添加構建目標以執行代碼生成(使用%爲ItemGroup中的每個項目執行命令)。這可以放在一個單獨的文件中,以便它可以包含在許多項目中。
<Target Name="GenerateService">
<Exec Command="servicegen.exe -i:%(ServiceDescription.Identity) -o:%(ServiceDescription.Identity).cs" />
</Target>
<PropertyGroup>
<BuildDependsOn>GenerateService;$(BuildDependsOn)</BuildDependsOn>
</PropertyGroup>