是否有一种标准的方法来引用C#项目的Microsoft Bond模式文件?
答案 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 README或the targets themselves。
Bond.CSharp软件包引入了许多其他Bond软件包,以获得Bond序列化的全部功能,这通常是您想要的。但是,您还可以使用finer-grained packages来更精确地控制依赖项(例如,不添加对Newtonsoft.JSON的依赖)。