2016-09-19 3 views

Répondre

4

Si vous ajoutez une référence au package NuGet Bond.CSharp, le fichier Bondgengen .targets sera automatiquement ajouté au fichier .csproj. Ce fichier .targets exécutera automatiquement codegen sur n'importe quel fichier .bond dans le groupe d'objets BondCodegen et le fichier .cs résultant sera implicitement compilé.

Dans Visual Studio, ceci est contrôlé en modifiant l'action de construction du fichier dans ses propriétés.

Il existe un simple example showing how the BondCodegen ItemGroup works dans l'arborescence des sources Bond. Un extrait de ce fichier qui .csproj ressemble à:

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

Pour encore plus de détails sur ce que le soutien des objectifs, consultez le Bond.CSharp package README ou the targets themselves. Le paquet Bond.CSharp extrait de nombreux autres paquets Bond pour obtenir toutes les fonctionnalités de la sérialisation Bond, ce qui est généralement ce que vous voulez. Cependant, il existe finer-grained packages que vous pouvez également utiliser pour un contrôle plus précis des dépendances (par exemple, pour ne pas ajouter de dépendance à Newtonsoft.JSON).

+1

Oui, les trois assemblages de références sont nécessaires. Sinon, le compilateur C# ne sera pas en mesure de trouver la partie de Bond que chacun inclut. Si vous êtes intéressé par ce que chacun contient, consultez la documentation liée qui parle de ce qu'il y a dans chaque paquet et du code source. – chwarr

+0

Que font les 3 fichiers de liaison * .dll dans l'exemple lié? Sont-ils nécessaires aussi? – yuvalm2