Back to vvvv
Search Results for

    Show / Hide Table of Contents

    Creating a new Library/Package/Nuget

    The most consistent way to contribute a set of nodes for vvvv is by creating a library and shipping it in form of a NuGet Package.

    Source and binary nugets

    NuGet packages are typically installed in binary form. vvvv adds the idea of "source nugets" in that it allows you to directly reference the sources of a package just as if it was already a binary nuget. For vvvv to recognize a directory as a source-nuget it has to be found in a directory specified as a package-repository and follow these conventions:

    Innards of a nuget

    For vvvv, a source-nuget in a directory is defined by two files:

    • <packName><packName>.nuspec
    • <packName><packName>.vl

    e.g.:

    \VL.Devices.Leap\VL.Devices.Leap.nuspec
    \VL.Devices.Leap\VL.Devices.Leap.vl
    

    The .nuspec file describes a nuget in a simple text format as defined by the Nuspec Reference.

    The .vl file acts as the central entry point when using the nuget. It defines all actual nodes that you get by using the nuget: everything has to be either patched in there or marked as a 'forwarded dependency'.

    In order for nugets to work with vvvv you have to provide the following structure where of course all the directories are optional and only needed when actually used by a specific nuget:

    \lib              //for managed .dlls
    \lib-native       //for native/un-managed .dlls
    \src              //for c# sources
    \vvvv             //for anything only useful for vvvv beta (this can include .vl files that are only wrapping vl-nodes for vvvv)
    <packName>.nuspec
    <packName>.vl
    

    Creating and Publishing a NuGet

    Once you're ready to create a NuGet .nupkg from your library, there are different options:

    • Use a build-service like GitHub Actions
    • nuget.exe commandline
    • NuGet Package Explorer UI
    • Improve this Doc
    In This Article
    Back to top Brought to you by vvvv.org | visualprogramming.net