Streamlining Package Creation

Coordinator
Jan 31, 2011 at 11:52 PM

Hi All, wanted to get your input on an issue I opened. 655 NuGet VSIX should put NuGet.exe on the Machine.

Before we get into implementation details (as the title of the issue does, but I'll change that), let's talk about the high level goal.

  1. We want to streamline the process for creating and uploading packages.
  2. We want to close the gap between users/creators.

Some options:

Dropping NuGet.exe on the machine via VSIX

Basic idea here is to simply have the VSIX deliver NuGet.exe.

Pros: Ubiquity: Everyone who users NuGet needs to run the VSIX. Even content creators will want to install the VSIX so they can test their creations.

Cons: It'll be inside %userprofile%\appdata\local\blah\blah\blah and we can't create a shortcut to it.

NuGet Package Author SDK

The idea here is to have an MSI (available via VS Extension Manager) that "installs" NuGet.exe into the machine's Path

Pros: nuget.exe command works from anywhere.

Cons: MSI

NuGet.exe available as a NuGet package

Pros: It's already a package. Problem solved.

Cons: It's not added to your path so if you want to run it from a command line, you need to go do that.

Any thoughts?

Feb 1, 2011 at 12:01 AM

The first thing I did with NuGet.exe is put it in a tools folder that I have on my machine and that's on the path (and is synced to all my machines via Live Sync).  I only had to do this once, since NuGet.exe is self-updatable.  To me this works as well as it could.

So the only small pain is how to get it onto your machine in the first place.  To me, the simplest solution is to just download the exe with nothing added, which is what we already have today (download link).  I don't need an MSI to get me an exe and pollute my Add/Remove program list.

Bottom line is that I question whether we really have an issue here.  Just my point of view! :)

Feb 1, 2011 at 1:09 AM

Would be nice to include it in the vsix.

Its good that its a package already for other "power" users.

/kzu from galaxy tab

On Jan 31, 2011 9:01 PM, "davidebbo" <notifications@codeplex.com> wrote:
> From: davidebbo
>
> The first thing I did with NuGet.exe is put it in a tools folder that I have on my machine and that's on the path (and is synced to all my machines via Live Sync). I only had to do this once, since NuGet.exe isself-updatable. To me this works as well as it could.So the only small pain is how to get it onto your machine in the first place. To me, the simplest solution is to just download the exe with nothing added, which is what we already have today (download link). I don't need an MSI to get me an exe and pollute my Add/Remove program list.Bottom line is that I question whether we really have an issue here. Just my point of view! :)
>
>
Feb 2, 2011 at 4:12 AM
Edited Feb 2, 2011 at 4:52 AM

So my 2 pennies, if it's worth that much. I think there are other options, and I wanted to throw this out there.

NuGet.exe available as an Application Package
To solve this problem, we really need a solution for application packages in Windows. In the beginning it was mentioned that NuGet would not be the project for that. That this concern would be handled by CoApp.
Gems already handles this idea because it supports a limited idea of application packages (executables mostly) in addition to library packages.
Because it's just easier to show you what I mean: http://www.youtube.com/watch?v=EE_2LMHKvWo
In 24 seconds I installed nuget, ran nuget.exe from any path on the computer and uninstalled nuget. I want this experience. Yes, folks, this really works.
____
Feb 2, 2011 at 4:29 AM

So, nuget does support applicaiton installation through the evil use of powershell.  We are using nuget this way at my company to distribute and update internal tools to our dev teams.

Feb 2, 2011 at 4:48 AM
Following that idea, the nuget.commandline package could use powershell to copy itself to a nicer directory on the computer and update the PATH variable to include its directory for command line use.

Feb 2, 2011 at 5:40 AM

Thanks for sharing the video Rob!

Maybe what's missing is a concept of a folder that's on the path and cam be a dumping ground for any executable.  The way it works in gems after installing nuget is:

  • The exe ends up in D:\RailsInstaller\Ruby1.8.7\lib\ruby\gems\1.8\gems\nuget-1.1.2120.136\bin\nuget.exe
  • A batch file ends up in D:\RailsInstaller\Ruby1.8.7\bin\nuget.bat, which delegates to the exe

What we don't have is an equivalent of this Ruby1.8.7\bin folder.

However, it should be noted that there is a bit of a chicken and egg thing here.  If NuGet is like Gems, then we need to look at how Gems gets installed, and there is no magic for that.  The mechanism using a folder on the PATH would be useful to get additional exe's, but not NuGet.exe itself.  That would have to happen via some initial setup, much like I just installed Rails via RailsInstaller.  Right?

Feb 2, 2011 at 5:51 AM

Haha, true. If nuget starts moving into the realm of app packages and has a central holding ground for executables, msi starts to make sense.

But thinking even further into what's possible, I'm thinking of a replacement for MSIs entirely. I could trade off one last msi to never have to run one again. :D
____
Rob
"Be passionate in all you do"

http://devlicio.us/blogs/rob_reynolds
http://ferventcoder.com
http://twitter.com/ferventcoder

Feb 2, 2011 at 7:40 AM

Yep, I totally agree that it would be nice to just use nuget.exe to get simple command line tools that really don't need an MSI.  Imagine being able to get all the sysinternal tools via nuget and keep them up to date!  And in my case, I'd put the shared folder in my Live Mesh to have it everywhere...

But that is stepping a bit outside our turf, so we should proceed carefully :)

Feb 6, 2011 at 2:56 PM
Yeah, I was stating an "I want" not necessarily meaning it for nuget. Maybe we could come up with something like a central repository on someone's machine and call it chocolate. That way you can get chocolate nougatty (nugetty) goodness. ;-)
____
Rob
"Be passionate in all you do"

http://devlicio.us/blogs/rob_reynolds
http://ferventcoder.com
http://twitter.com/ferventcoder


On Wed, Feb 2, 2011 at 1:40 AM, davidebbo <notifications@codeplex.com> wrote:

From: davidebbo

Yep, I totally agree that it would be nice to just use nuget.exe to get simple command line tools that really don't need an MSI. Imagine being able to get all the sysinternal tools via nuget and keep them up to date! And in my case, I'd put the shared folder in my Live Mesh to have it everywhere...

But that is stepping a bit outside our turf, so we should proceed carefully :)

Read the full discussion online.

To add a post to this discussion, reply to this email (nuget@discussions.codeplex.com)

To start a new discussion for this project, email nuget@discussions.codeplex.com

You are receiving this email because you subscribed to this discussion on CodePlex. You can unsubscribe or change your settings on codePlex.com.

Please note: Images and attachments will be removed from emails. Any posts to this discussion will also be available online at codeplex.com