Distributing toolkits with NuGet packages

Coordinator
Aug 23, 2013 at 9:59 PM
Similar to my last thread about NuGet, I'd like to know if anyone has packaged a NuPattern toolkit inside a NuGet package. If so, did you trigger the toolkit installation upon package installation? NuGet supports running a PowerShell script every time a solution is loaded, and I'm thinking that could be used to check to see if the user has the toolkit installed and run the installation if it is missing.
Coordinator
Aug 23, 2013 at 10:07 PM
I'm starting that effort at https://github.com/NuPattern/Core

It requires significant rework, btw.


/kzu

--
Daniel Cazzulino


Coordinator
Aug 23, 2013 at 10:30 PM
Are you changing the way toolkits are loaded so that they don't require VSIX installation, or are you running the VSIX installer when the NuGet package is installed in the solution?
Coordinator
Aug 24, 2013 at 2:57 AM
So far, we're not doing anything ;). We're just exploring ideas.

NuPattern for the foreseable future will require VSIX installers. Visual Studio requires this for many artifacts (i.e. templates, MEF components, etc.), that just can't be dynamically enabled via a nuget. Also, even if the VSIX can be installed on nuget package install, it will still require a VS restart, therefore dimishing its usefulness (nuget is per-project or per-solution, whereas VS extensions are per user/machine).


/kzu

--
Daniel Cazzulino


Coordinator
Aug 25, 2013 at 4:13 PM
For now, without changing anything about how NuPattern works, I'm thinking of writing a PowerShell script that will attempt to determine if a pattern toolkit is installed, and if not, run the installer, which will notify the user that VS must be restarted. This will only happen one time per toolkit/machine/developer. I think you are right that a restart diminishes the experience, but hopefully it won't be too bad. I'm working on a pattern for packaging IP harvested from projects at work, and it's only exploratory at this point.
Coordinator
Aug 25, 2013 at 8:24 PM
That approach certainly works. We've also tried it successfully with code nugets that have an accompanying VSIX tooling


/kzu

--
Daniel Cazzulino