在C#项目中使用Microsoft Bond

时间:2016-09-19 10:52:40

标签: c# csproj bond

是否有一种标准的方法来引用C#项目的Microsoft Bond模式文件?

1 个答案:

答案 0 :(得分:4)

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

在Visual Studio中,通过在其属性中更改文件的“Build Action”来控制它。

Bond源树中有一个simple example showing how the BondCodegen ItemGroup works。 .csproj文件的摘录:

<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>

有关目标支持的更多详细信息,请查看Bond.CSharp package READMEthe targets themselves

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