For my simulation application I want to use a custom NuGet repository for storing the plug-ins, i.e. plug-in assemblies will be packaged as NuGet packages. The application consists of a host application and a data application. The host application provides the UI (either as WPF UI or as plug-in to a CAD application) and handles all interaction with the user but does not perform any of the simulation calculations, nor does it store any of the simulation data. The data application performs the simulation calculations but does not have any way for the user to interact with it directly, all input is provided via a connection with the host (either via named pipe if both are on the same machine or via TCP if they are on different machines). This approach allows distributed computing via a single host with multiple data applications.
To provide the applications with the ability to install plug-inss I am creating a windows service that will:
- Provide serialized information describing the available plug-ins, their connections and the package they are contained in to the host application.
- Provide information about the available packages with their descriptions, dependencies etc. to the host application.
- Provide a connection point for "downloading" the NuGet packages containing the plug-ins for the data application.
The current problem is how to get a NuGet server running in the windows service. I know about NuGet.Server but that requires ASP.NET MVC (and thus IIS) and extensive googling has not come up with any code that allows me to run a NuGet feed outside IIS.
So my question is how do I approach this problem? What would be the most suitable way to allow my windows service to act as a NuGet repository? Can I run Nuget.Server inside a windows service or is there another way?