2016-09-19 106 views

回答

4

如果您添加对NuGet软件包Bond.CSharp的引用,则Bond codegen .targets文件将自动添加到.csproj文件中。这个.targets文件将自动在BondCodegen ItemGroup中的任何.bond文件上运行codegen,并且生成的.cs文件将隐式编译。

在Visual Studio中,这是通过在其属性中更改文件的“构建操作”来控制的。

Bond源树中有simple example showing how the BondCodegen ItemGroup works。什么目标的支持,请查看Bond.CSharp package READMEthe targets themselves

<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 
    ... 
    <Import Project="..\..\..\..\cs\build\nuget\Bond.CSharp.props" /> 
    ... 
    <ItemGroup> 
    <BondCodegen Include="schema.bond" /> 
    </ItemGroup> 
    ... 
    <Import Project="$(BOND_PATH)\build\nuget\Bond.CSharp.targets" /> 
</Project> 

如需更多详细资料:什么是.csproj的文件看起来像一个摘录。

Bond.CSharp包引入许多其他Bond包以获得Bond序列化的全部功能,这通常是您想要的。但是,您还可以使用finer-grained packages来更精确地控制依赖关系(例如,不添加对Newtonsoft.JSON的依赖关系)。

+1

是的,需要三个引用程序集。否则,C#编译器将无法找到每个包含的Bond部分。如果您对每个包含的内容感兴趣,请查看关于每个包中的内容和源代码的链接文档。 – chwarr

+0

链接示例中的3个bond * .dll文件是做什么的?他们也需要吗? – yuvalm2