It has been a while since NuGet support was added to SharpDevelop so, after David Fowler announced that he had got NuGet building under Mono, I had a look at porting the SharpDevelop addin over to MonoDevelop and created a NuGet addin for MonoDevelop.
The addin provides a Manage Packages dialog that you can use to add, remove and update NuGet packages in a similar way to Visual Studio or SharpDevelop. Here is a screenshot of the Manage Packages dialog open in MonoDevelop running on OpenSuse 12.2
The addin has been tested with the following:
- MonoDevelop 3.0.5
- Mono 2.10.9
- OpenSuse 12.2
- Windows 7
The addin uses a slightly customised version of NuGet.Core based on the original NuGet's source code available from the mono-build branch. The source code for this customised NuGet.Core is available on GitHub.
Getting the Addin
The addin's source code is available on GitHub.
The addin is also provided as a pre-compiled binary available to download from a custom MonoDevelop repository:
You can add this repository to MonoDevelop via the Add-in Manager.
Please note that the addin is a beta release and more work is still to be done.
Manage Packages Dialog
The Manage Packages Dialog can be opened from the Projects menu by selecting Manage NuGet Packages.
It can also be opened by selecting the Solution window, right clicking either the solution, the project or the project's references and selecting Manage NuGet Packages.
As a NuGet package is installed or uninstalled you can see the package operations that executed by expanding the Messages section near the bottom of the dialog.
Configuring Package Sources
NuGet Package Sources can be configured in MonoDevelop's options.
In Linux you can open the options dialog by selecting Preferences from the Edit menu. In Windows you can select Options from the Tools menu. In the Options dialog scroll down the categories on the left hand side until you find NuGet and then select Package Sources. Here you can add and remove NuGet package sources.
Any PowerShell scripts in a NuGet package will be ignored by the addin since Mono does not currently have support for them.
There have been some attempts to implement PowerShell on Mono starting with Igor Moochnick who created Pash in 2008. Work on this was picked up launchpad.net by Jonathan Ben-Joseph but that work stopped. The latest effort on bringing PowerShell to Mono is Jay Bazuzi with recent work done on the Pash source code available on GitHub.
There was also some discussion in the NuGet forums on allowing some way of being able to write a .NET version of the PowerShell scripts (install.ps1, uninstall.ps1 and init.ps1).