{"id":3468726,"name":"studioshell","ecosystem":"nuget","description":"PowerShell module that deeply integrates Visual Studio extensibility with your PowerShell session.","homepage":"http://studioshell.codeplex.com/","licenses":null,"normalized_licenses":[],"repository_url":"","keywords_array":["StudioShell","PowerShell","VisualStudio","DTE"],"namespace":null,"versions_count":4,"first_release_published_at":"2011-12-30T05:33:33.097Z","latest_release_published_at":"2014-01-28T22:57:32.197Z","latest_release_number":"1.6.0","last_synced_at":"2026-06-11T17:34:29.954Z","created_at":"2022-04-10T18:51:36.860Z","updated_at":"2026-06-11T17:35:11.666Z","registry_url":"https://www.nuget.org/packages/studioshell/","install_command":"Install-Package studioshell","documentation_url":null,"metadata":{"copyright":"Copyright (c) 2011 Code Owls LLC, All Rights Reserved","owners":"Code Owls LLC","license_url":"http://studioshell.codeplex.com/license","require_license_acceptance":true,"icon_url":"http://download.codeplex.com/Download?ProjectName=studioshell\u0026DownloadId=211977","development_dependency":false,"serviceable":false,"framework_assemblies":[],"package_types":[],"release_notes":"TOPIC\n    about_StudioShell_Version\n\nVERSION\n    You are running version 1.6 of StudioShell.\n\nCHANGE LOG\n  Description\n    The changelog documents the changes placed in each release of \n\tStudioShell.  Each item is identified by its codeplex work item \n\tnumber(s) if available.\n\n1.6\n  Resolved Issues\n\n  Added Features\n  1.6.0\n    Added support for VS 2013.\n\n1.5\n  Resolved Issues\n  1.5.1\n    55: Visual Studio version detection in nuget install script now uses product version \n    of the environment command line.  \n\n    55: Installer now checks for OLE object definitions in HKCR to verify existence\n    of Visual Studio installations.\n\n    Tab expansion works again for variable names.\n\n    50: Error management and reporting has been revamped in several ways.  First, \n    exceptions explicitly thrown from the console are now reported rather than silently\n    disappearing.  Second, errors that occur during non-interactive use of the runspace,\n    such as calculating the prompt or running a scriptblock as part of a menu item, no \n    longer propagate out to the Visual Studio process as exceptions.\n\n  1.5.0\n    You can now add a reference to a project by its name when the project is \n    contained in a solution folder.\n\n    The installer no longer assumes default install locations, and instead\n    uses paths from the registry to locate prerequisites.\n\n    Canceling a running pipeline (CTRL+SHIFT+C) doesn't require you to Tonya \n    Harding the entire runspace anymore.    \n\t\n    Fixed rename-item implementation to work against multiple matched path \n    nodes.\n\n\tFixed CanGet property logic in ShellCodeProperty2.\n\n\tRemoved dependency on PostSharp; this allows StudioShell and PostSharp to be\n\tsuccessfully used in the same instance of Visual Studio.\n\n\tFixed initialization script errors related to stricter variable interpolation\n\trules introduces in PowerShell v3.\n    \n    Addressed several issues with command bars; in particular, comboboxes have \n    been removed as a control option since you can't create them via automation \n    anyway.\n    \n    Buttons are now the default itemtype for new-item when working in the \n    commandbars path node.\n    \n    The default StudioShell prompt was updated to remove the PowerShell \n    Provider Path preamble in v3 hosts.\n    \n    42: Massive changes to NuGet init.ps1 logic.  NuGet package now verifies \n    the state of your Visual Studio session, as well as checking for installed \n    versions of StudioShell before attempting a module install.\n    \n    New-Item in solution/projects no longer appends project file extension to \n    project name.  This can cause the VS template mechanism to fail in some \n    situations and seems to set off VS2012 in a big way.    \n    \n    26: Tab expansion behaves closer to the console standard.\n    \n    The StudioShell module no longer adds its internal Scripts folder to the \n    path.  This was causing commands to be discovered as both functions of the \n    module and script files, and generally mucking up the help for these \n    script-based commands.\n    \n    MSI installer now modifies Visual Studio current user registry settings, \n    rather than machine-wide settings.\n    \n    27: Importing into the ISE is now functional.\n\t\t\n  Added Features\n  1.5.1:\n    51: Added intercept for unsupported console applications.  Attempting to\n    run an known interactive console application from the StudioShell console\n    will result in an error as it does in the ISE console.\n\n  1.5.0:\n    Added StudioShellVersion entry to existing psversiontable variable.    \n\n    43: Add-in and build install support for VS 2012.\n\n\tSupport for PowerShell v3 hosts.\n    \n    Support for PowerShell v3 tab expansion mechanisms.       \n    \n    Invoke-Item now supported on commandbar buttons (menu items with actions, \n    but not popups).  Note that an error is raised if the commandbar button \n    is disabled when invoked; because of this, buttons linked to scriptblocks \n    are not immediately invokable, since these buttons are disabled when the \n    StudioShell runspace is unavailable (such as during a call to invoke-item). \n    \n    Cache templates are now listed in the dte:/templates hive.\n\t\n    Added Pester unit tests to source hive.       \n    \n1.3\n  Resolved Issues\n    1.3.1\n\tThe initial release of 1.3 contained a bug that broke the path topology\n\tmanagement mechanism, effectively leaving the following path nodes useless:\n\t/solution/codemodel \n\t/selectedItems/codemodel\n\n    1.3.0\n\t23: Project folders now support the new-item cmdlet properly.\n\n  \t31: The exit command closes the console window but not reset the PowerShell\n\t\tsession.  A new menu command was added to reset the session.  This\n\t\tcommand effectively associates a new PowerShell runspace with the\n\t\tStudioShell console.\n\n\t\tThe reason the exit command doesn't reset the console session is \n\t\tthat there are many features of StudioShell that rely on the under-\n\t\tlying PowerShell runspace backing the console.  E.g., solution \n\t\tmodules.\t\t\n\n\t25, 32: The StudioShell console now supports multi-line statements and \n\t\tnested prompting.  E.g., if you enter a command and a pipe, the \n\t\tconsole will prompt you for the next pipeline command.\n\n\t36: The NuGet initialization script would fail if the AddIns folder did not\n\t\texist.  Now the AddIn folder is explicitly created.\n\t\t\n\t38: It was not possible to specify a path to an assembly file when adding\n\t\ta reference to the dte:/solution/projects/.../references node.\n\t\tPowerShell would interpret the file path as part of the item path.\n\t\tThe reference collection node was modified to accept an assembly\n\t\tpath or name in the new-item -value parameter.\n\n  Added Features\n\n1.2\n  Resolved Issues\n\tThe user's home drive is no longer assumed to be the same drive on which\n\tStudioShell is installed.  Previously scripts used the \"home folder\" ~\n\tassuming it always referenced the user's home folder (a la the Linux \n\tmeaning of ~) which is typically c:\\users\\\u003cusername\u003e.  If StudioShell is\n\tinstalled on the C: drive, but the user's home drive is, say, H:, the \n\tsettings data and profile scripts would not be accessed properly, resulting\n\tin strange behavior in the console.\n\t\n\tThe 'exit' command just hides the console; reinitializing the runspace \n\tproved to cause unintented side-effects when the UI has been altered with\n\tcustom script commands. \n\t\n\tVisual Studio command objects are now guaranteed to always have a name.  \n\tPreviously commands that didn't have name were unreferenceable, but would\n\tappear in the list of items in the command path node.  This would disrupt\n\tthe console output and falsely show multiple containers under the command\n\tnode.  Nameless commands are now identified by their numeric ID value.\n\t\n\tFormats are now defined and working for the following path nodes:\n\t  * project templates\n\t  * project item templates\n\t  * tasks\n\t  * errors\n\t  * addins\n\t  * fonts / color settings\n\n\t10: The default console warning and error color selections are \n\t\treadible (color on black background)\n\n\t17: Slashes are normalized as backslashes (\\) in PSDTE paths even though \n\t\tforward slashes (/) are clearly superior.\n\n\t\tIn addition, the dte:/ drive name is no longer present in the \n\t\tPSPath information returned by the provider.\n\t\t\n\t\tFor more information on this path issue see:\n\t\thttp://www.nivot.org/post/2010/03/05/PowerShellThePatchworkOfPathsPSPathsAndProviderPaths.aspx\n\n\t19: Variables are now tested for existence before attempting to\n\t\tcreate them to avoid errors; e.g., the $dte variable is already \n\t\tdefined in the NuGet Package Manager Console, and attempting\n\t\tto redefine the variable results in an error.\n\n\t\tA list of variables that cannot be defined is still issued\n\t\tin a debug message to the console, with one exception - \n\t\tif the $dte variable already exists, it is assumed to be \n\t\tthe root DTE variable for the Visual Studio Shell and no \n\t\tmessage is issued.\n\n\t23: Project folders now support the ability to add new items.\n\n\t24: Support for read-host is now properly implemented.  Both -prompt and \n\t\t-assecurestring parameters behave as they do in the standard PowerShell \n\t\tconsole.\n\n  Added Features    \n\tThe Cancel Executing Pipeline command actually works now.  At some\n\t\tpoint while toying with NuGet support, I had disabled this command\n\t\tfunctionality.  In addition, the pipeline monitoring backing the\n\t\tcommand is now off of the main UI thread; this makes canceling pipes\n\t\tthat are leveraging UI-thread items (such as Visual Studio) more\n\t\tresponsive.\n\n    Accessing AddIns no longer crashes VisualStudio.  The AddIns node \n\t\tnow closes access to the AddIn.Instance property; accessing this \n\t\tproperty apparantly causes Visual Studio to crash.  Don't know why.\n\n\tImproved support for usage from NuGet.  All of the StudioShell PSDTE\n\t\tfunctionality is available from the NuGet Package Manager Console once\n\t\tyou import the StudioShell module.  Previously, menu items and commands \n\t\tadded via the DTE drive would be created, but would never execute if\n\t\tcreated from the package manager console.  \n\t\t\n\t\tSee http://studioshell.codeplex.com/discussions/255426 and\n\t\thttp://studioshell.codeplex.com/discussions/255413\n\n\tIntegrated NuGet Packaging with StudioShell build.  StudioShell can now\n\t\tbe installed via NuGet.  Search for the package named \"StudioShell\" in\n\t\tthe public NuGet package repository.  \n\n\tSupport for using the PSDTE provider outside of Visual Studio.  You can now\n\t\tload the PSDTE provider in a standard PowerShell console and get access\n\t\tto the DTE: drive without running Visual Studio explicitly.  \n\t\t\n\t\tSupport for\tthis scenario should be considered beta; some aspects of \n\t\tthe DTE: drive behave differently outside of Visual Studio.  In \n\t\taddition, the visualization\tcmdlets available in StudioShell do not work \n\t\tfrom the console.\t\t\t\t\n\t\t\n\tSupport for SQL Server Management Studio (SSMS) installations.  SSMS support\n\t\tis experimental at the moment.  Moreover, several key path nodes are not\n\t\tsupported by SSMS and are therefore not available on the DTE drive: \n\n\t\t* the project hive cannot be manipulated because the SSMS object model\n\t\t  does not support it.\n\n\t\t* there is no code model implemented for T-SQL, and therefore there are\n\t\t  no code model hives in the DTE drive in SSMS.\n\n\t\t* it is very likely that other portions of the DTE drive are \n\t\t  non-functional or at least unstable.\n\t\t  \n\t\tYou have been warned, use with _extreme caution_.\n\n  DTE Drive Path Topology Changes\n    \n\tCode Model Relocation\n\t\n\tThe code model is now isolated from project items.  In previous versions, the\n\tcode model was available as a hive beneath each particular project item:\n\n\tdte:/solution/projects/\u003cproject name\u003e/\u003citem name\u003e/codemodel\n\n\tProject item properties were available in a peer of the code model node:\n\n\tdte:/solution/projects/\u003cproject name\u003e/\u003citem name\u003e/itemproperties\n\n\tThis path topology proved inefficient for working with project items.  The\n\tcode model hive is generally massive in comparison, making recursive \n\toperations targeting the project items cumbersome and slow.  E.g.,:\n\n\tls dte:/solution/projects -recurse -include 'packages.config'\n\n\tMoving the code model addresses this issue, and provides a cleaner\n\tand simpler path topology.  Project items remain in the same location:\n\n\tdte:/solution/projects/\u003cproject name\u003e/\u003citem name\u003e/itemproperties\n\n\tThe code model hive is now available under the following node:\n\n\tdte:/solution/codemodel/\u003cproject name\u003e/\u003citem name\u003e/\n\n\tThe code model is still organized by project and file, which is necessary\n\tto permit modifying operations to the code model.\n\t\n\tSelected Items Reorganization\n\n  \tPreviously the SelectedItems path node listed currently selected code model\n\telements individually; in this release the SelectedItems node is expanded with \n\ta new CodeModel container node that houses the currently selected code model\n\tobjects.\n\n1.1 (private release)\n  Resolved Issues\n    7: clear-item is now supported in the default console\n\n\t8: UI thread deadlocking has been addressed in all cases except nested \n\t\tconsoles.\n\n\t13: using shift-home and shift-end in default console selects from the \n\t\tcurrent position to start-of-input and end-of-input respectively.\n\n\t14: tab completion now manages existing quotes and adds missing quotes \n\t\tto paths as required\n\n\tusing 'exit' in the default studioshell console now releases the existing\n\t\trunspace.  re-opening the console will create a new runspace initialized \n\t\tto the default studioshell state.\n\n  Added Features\n    Added support for unregister-\u003cSolutionModuleName\u003e function in solution\n\t\tmodules.  This function will be invoked just before the module\n\t\tis removed from the session.  The existing mechanism for catching\n\t\tthe unload event for the solution module proved too difficult for\n\t\tthe author to remember reliably:\n\n\t\t$m = $MyInvocation.MyCommand.ScriptBlock.Module;\n\t\t$m.OnRemove = {\n\t\t\t# ...\n\t\t}\n\n\t\tThis method still works of course, but you can now opt for the\n\t\tsimpler and more understandable:\n\t\t\n\t\tfunction unregister-MySolutionModule\n\t\t{\n\t\t\t#..\n\t\t}\n\n    Project item properties are now available in the DTE hive:\n\t    ls dte:/solution/projects/MyProject/Program.cs/itemproperties\n\n\t\tSee http://studioshell.codeplex.com/discussions/248899\n1.0.1 \n  Resolved Issues\n\t1: Tab completion and history walking have been hardened in the console.\n\n\t2,6: Solution Folders are now recognized as containers in the console.\n\n\t5: Solution Modules are now unloaded automatically if the \n\t\t\"AutoManageSolutionProfiles\" setting is enabled.\n\n\t9: The PowerShell AllUsersCurrentHost is no longer loaded.  The \n\t\t\"LoadPowerShellProfiles\" setting now only applies\n\t\tto your Current User profile script located at \n\t\t~\\documents\\windowspowershell\\profile.ps1.\n\n\t11: Data panes (visualizations) now reliably appear in VS2010.\n\n\t12: The default console window now consumes all available client area of\n\t\tthe tool window at startup.\n\n  Added Features\n\t10: Project item properties are now avaialble in the path heirarchy.\n\t\tSee dte:/solution/projects/\u003cproject\u003e/\u003cfile\u003e/properties.\n\n\tThe locals and arguments nodes under the stack frame tree now add missing\n\t\tquotes to strings when you attempt to set an expression value.\n\n\tThe default PowerShell module path is now added to the process environment\n\t\twhen StudioShell is started.\n\t  \n1.0.0 \n  Initial Release\n\nSEE ALSO\n    http://studioshell.codeplex.com\n    http://www.studioshell.org\n    about_StudioShell_License\n    PSDTE"},"repo_metadata":{},"repo_metadata_updated_at":"2026-06-11T17:35:11.631Z","dependent_packages_count":0,"downloads":13497,"downloads_period":"total","dependent_repos_count":0,"rankings":{"downloads":15.88820537524196,"dependent_repos_count":12.696710402554181,"dependent_packages_count":19.548236353119677,"stargazers_count":null,"forks_count":null,"average":16.044384043638605},"purl":"pkg:nuget/studioshell","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/nuget/studioshell","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/nuget/studioshell","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/nuget/studioshell/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/nuget.org/packages/studioshell/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/nuget.org/packages/studioshell/version_numbers","latest_version_url":"https://packages.ecosyste.ms/api/v1/registries/nuget.org/packages/studioshell/latest_version","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nuget.org/packages/studioshell/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/nuget.org/packages/studioshell/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/nuget.org/packages/studioshell/codemeta","maintainers":[{"uuid":"beefarino","login":"beefarino","name":null,"email":null,"url":null,"packages_count":5,"html_url":"https://www.nuget.org/profiles/beefarino","role":null,"created_at":"2022-11-18T20:38:16.953Z","updated_at":"2022-11-18T20:38:16.953Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/nuget.org/maintainers/beefarino/packages"}]}