Enhance VS Extension (Proposal 1)

Dec 22, 2011 at 6:29 AM
Edited Dec 22, 2011 at 6:32 AM

Issue: Building of multiple interdependent projects is a real pain, as is the build push experience in general.

Proposal: Add a tab to project properties via the VS Extension to support NuGet configuration for projects, this would add a form view to edit the underlying associated NuSpec file.  I strongly urge that the "Enhance Unreferenced Assemblies (Proposal 1)" & "Enhance Unreferenced Assemblies (Proposal 2)" are implemented first, and this proposal assumes them.

This would include include all the main nuspec fields, with the ability to specify autopopulated fields.

It would show which files, dependencies & references were being included automatically and allow them to be set for exclusion.  It would allow additional files, dependencies & references to be added.

Dec 22, 2011 at 6:31 AM

Please note that I am happy to submit a spec, implement the changes and request a pull if there's a good chance they'll be approved.

Dec 22, 2011 at 11:13 PM

Thanks for the suggestion. You mentioned "Building of multiple interdependent projects is a real pain" but you didn't tell us how or why it's a pain.

We have an existing issue related to multiple interdependent projects you may want to look at first: http://nuget.codeplex.com/workitem/936

Thanks again for all your suggestions. Keep them coming!

Dec 23, 2011 at 12:27 PM

Yes, you might notice I commented on that workitem already, however it refers to multiple independent NuGet producing projects in the same solution.

We have many solutions, each which produce NuGets which may be used in other solutions that produce NuGets.

For example

WebApplications.Utilities -> WebApplications.Utilities.Logging -> WebApplications.Utilities.Translation
WebApplications.Utilities -> WebApplications.Cryptography

each solution produces an independent, seperately useful, seperately tested NuGet, that is then used by another solution that also creates a NuGet, etc.

Although we don't currently have any solutions that produce multiple NuGets (as in workitem 936) that too is potentially valid, but a different use case.


Apologies for not going into detail about the problems, I had gone into nauseating detail in my other posts that I referenced and I was trying to have at least some succinct comments ;)!

To make a functional properties page, it would be much easier if we had the enhancements I had suggested in those posts, though they were not directly relevant to this proposal (adding a properties tab to project properties).

Dec 23, 2011 at 6:20 PM

Ok, but this discussion is solely focused on building an editor for nuspec, right? That seems like a reasonable thing to do. We actually have one already via the NuGet Package Explorer (http://npe.codeplex.com/) but it's not part of the VS experience.

I think it's probably worth logging an issue for this. That'll help us judge the value in it. If you want to post a mock-up too, that'd be great. Let's start small with the simplest thing possible for each proposal. That allows us to take stock after the feature is out there, get real feedback, and then take the next step. :)


Dec 26, 2011 at 7:51 AM

I used the package explorer regularly, but as you say it's not an integrated experience, and most importantly it doesn't parse NuSpecs that contain substitution targets (e.g. $id$), it's really designed for parsing finished packages.  The extension suggested is designed for editing NuSpecs specifically, and for that to be part of the project experience with Visual Studio.

I will create an issue thanks.

Dec 26, 2011 at 7:55 AM

This is now referenced in http://nuget.codeplex.com/workitem/1807.

Jan 9, 2012 at 10:38 AM
Edited Jan 9, 2012 at 10:39 AM

FYI, in the next version of NuGet Package Explorer, I'm planning to allow it to parse the substitution tokens in a .nuspec file.

As for the integrated .nuspec editor inside VS, I have heard a few requests for it in the past. It's a good idea; however, I'm skeptical of including it in the NuGet extension.

The current NuGet extension focuses solely on the tasks of installing/uninstalling packages. We defer the tasks of package creation to external tools, e.g. nuget.exe and Nuget Package Explorer. So I think it makes more sense to create a separate VS extension for this editor. It can be a different project managed by the community.