{"id":14928,"date":"2018-04-25T08:00:21","date_gmt":"2018-04-25T15:00:21","guid":{"rendered":"https:\/\/www.sapien.com\/blog\/?p=14928"},"modified":"2018-04-25T07:45:36","modified_gmt":"2018-04-25T14:45:36","slug":"powershell-studio-2018-service-release-v5-5-151","status":"publish","type":"post","link":"https:\/\/dev.sapien.com\/blog\/2018\/04\/25\/powershell-studio-2018-service-release-v5-5-151\/","title":{"rendered":"PowerShell Studio 2018: Service Release v5.5.151"},"content":{"rendered":"<p>Today we released a new service build of PowerShell Studio 2018 (v5.5.151). This service build is included as part of the regular update cycle for our subscribers.<\/p>\n<p>&nbsp;<\/p>\n<h2>New Features<\/h2>\n<p>This service release introduces changes to our file templates format, new file templates, custom actions for your installer, and more.<\/p>\n<p>&nbsp;<\/p>\n<h3>Custom Actions for MSI Installers<\/h3>\n<p>You can now specify custom actions for your MSI Installers. Custom Actions allow you to run custom scripts and tools during the installation process.<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/Custom-Actions.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Custom Actions\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/Custom-Actions_thumb.png\" alt=\"Custom Actions\" width=\"644\" height=\"456\" border=\"0\" \/><\/a><\/p>\n<p>For more details on using Custom Actions, refer to the following article:<\/p>\n<p><a title=\"https:\/\/www.sapien.com\/blog\/2018\/02\/26\/custom-actions-in-primalscript-2018s-msi-builder\/\" href=\"https:\/\/www.sapien.com\/blog\/2018\/02\/26\/custom-actions-in-primalscript-2018s-msi-builder\/\">https:\/\/www.sapien.com\/blog\/2018\/02\/26\/custom-actions-in-primalscript-2018s-msi-builder\/<\/a><\/p>\n<p>&nbsp;<\/p>\n<h3>Service Installer Option<\/h3>\n<p>PowerShell Studio now allows you to create installer for service executables. You can use this option in conjunction with the service packager engine.<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/Windows-Service-MSI.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Windows Service MSI\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/Windows-Service-MSI_thumb.png\" alt=\"Windows Service MSI\" width=\"644\" height=\"456\" border=\"0\" \/><\/a><\/p>\n<p>For more details on the Service Installer, refer to the following article:<\/p>\n<p><a title=\"https:\/\/www.sapien.com\/blog\/2018\/03\/05\/installing-windows-services-created-with-powershell\/\" href=\"https:\/\/www.sapien.com\/blog\/2018\/03\/05\/installing-windows-services-created-with-powershell\/\">https:\/\/www.sapien.com\/blog\/2018\/03\/05\/installing-windows-services-created-with-powershell\/<\/a><\/p>\n<p>&nbsp;<\/p>\n<h3>Updated New File and New Project Dialogs<\/h3>\n<p>The first thing you will notice when creating a new file or new project is the redesigned dialogs that allow you to select the file or project templates.<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/New-File-Dialog.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"New File Dialog\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/New-File-Dialog_thumb.png\" alt=\"New File Dialog\" width=\"644\" height=\"420\" border=\"0\" \/><\/a><\/p>\n<h4>Template Categories<\/h4>\n<p>In the upper left-hand side are the categories for the file templates. You will find a PowerShell category that lists all PowerShell script files and a sub-category for form templates.<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/Categories.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Categories\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/Categories_thumb.png\" alt=\"Categories\" width=\"290\" height=\"300\" border=\"0\" \/><\/a><\/p>\n<p>If you select the top node, in this case,\u00a0<strong>Files<\/strong>, it will list all of the templates.<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/All-Templates.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"All Templates\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/All-Templates_thumb.png\" alt=\"All Templates\" width=\"644\" height=\"420\" border=\"0\" \/><\/a><\/p>\n<h4>Searching<\/h4>\n<p>You can use the search field to search the template titles and their tags (see below).<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/Search-Templates.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Search Templates\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/Search-Templates_thumb.png\" alt=\"Search Templates\" width=\"644\" height=\"420\" border=\"0\" \/><\/a><\/p>\n<p><em><em><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: left; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Tip\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/Tip.png\" alt=\"Tip\" width=\"32\" height=\"32\" align=\"left\" border=\"0\" \/><\/em>\u00a0 Select the <strong>Files<\/strong> node to search all available templates regardless of category.<\/em><\/p>\n<p>&nbsp;<\/p>\n<h4>Template Tags<\/h4>\n<p>The small text located next to the template names are tags\/keywords that describe the contents of the particular template.<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/Template-Tags.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Template Tags\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/Template-Tags_thumb.png\" alt=\"Template Tags\" width=\"644\" height=\"55\" border=\"0\" \/><\/a><\/p>\n<p>For example, a form template may have the following tags:<\/p>\n<blockquote><p><em>PowerShell, Form, Grid, Search<\/em><\/p><\/blockquote>\n<p>These tags let you know that this particular template is a PowerShell script that has a GUI with a Grid and has Search capabilities.<\/p>\n<p><em><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; float: left; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Tip\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/Tip-1.png\" alt=\"Tip\" width=\"32\" height=\"32\" align=\"left\" border=\"0\" \/>\u00a0 Tags can also be used to filter out file templates by language.<\/em><\/p>\n<p>&nbsp;<\/p>\n<h3>New File Templates<\/h3>\n<p>We added several new templates to PowerShell Studio:<\/p>\n<blockquote>\n<h4>Service Script Template<\/h4>\n<p>This template contains the necessary functions to create a Windows service script executable.<\/p>\n<h4>PowerShell Class Template<\/h4>\n<p>This template contains an example PowerShell class. When you use this template, PowerShell Studio immediately allows you to rename the class directly within the editor.<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/PowerShell-Class-Template.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"PowerShell Class Template\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/PowerShell-Class-Template_thumb.png\" alt=\"PowerShell Class Template\" width=\"644\" height=\"310\" border=\"0\" \/><\/a><\/p>\n<p>If you add the class template as part of a project, it will use the specified file name as the default name of the class.<\/p>\n<h4>C# File Template<\/h4>\n<p>This template creates an empty C# file. You can use this template as a quick way of writing C# code for the Add-Type cmdlet.<\/p>\n<h4>Text File Template<\/h4>\n<p>This template creates an empty text file.<\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<h3>New Template Format<\/h3>\n<p>The new features mentioned above are possible because of the new template format (.pstemplate) introduced in this build.<\/p>\n<p><span style=\"color: #000000;\"><em>Note: PowerShell Studio will automatically convert your existing templates to the new pstemplate format.<\/em><\/span><\/p>\n<p>The templates are stored in new directories:<\/p>\n<table class=\"nicetable\" border=\"0\" width=\"600\" cellspacing=\"0\" cellpadding=\"2\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"227\"><strong>Template Type<\/strong><\/td>\n<td valign=\"top\" width=\"373\"><strong>New Template Directory<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"227\">File (includes psf files)<\/td>\n<td valign=\"top\" width=\"373\">[Template Directory]\\File Templates<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"227\">Grid<\/td>\n<td valign=\"top\" width=\"373\">[Template Directory]\\Grid Templates<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"227\">Project<\/td>\n<td valign=\"top\" width=\"373\">[Template Directory]\\Project Templates<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><em>Note: Form psf templates are now stored with the other file templates<\/em>.<\/p>\n<p>We will cover the template format in more detail in a later article.<\/p>\n<p>&nbsp;<\/p>\n<h3>New Template Variables<\/h3>\n<p>This service build also introduces new template variables:<\/p>\n<blockquote><p><strong>%FILETITLE%<\/strong><br \/>\nInserts the file name without the extension.<\/p><\/blockquote>\n<blockquote><p><strong>%SNIPPET%<\/strong><br \/>\nInserts the snippet that comes with the template script. This is handled automatically when creating a template.<\/p>\n<p><strong>%SNIPPET:SHORTCUT%<\/strong><\/p>\n<p>Inserts the snippet with the matching shortcut. This snippet must be present in the Snippet Panel and is not included with the template.<\/p>\n<p>For example:<br \/>\n<strong>%SNIPPET:MSGBOX%<\/strong> will insert the message box snippet when the template is first loaded.<\/p><\/blockquote>\n<p><strong><span style=\"color: #800000;\">Important: Templates only trigger the first %SNIPPET% variable\u2014multiple uses of the variable will be ignored.<\/span><\/strong><\/p>\n<p>&nbsp;<\/p>\n<h3>Template Variable Formatting<\/h3>\n<p>When using variables in your templates, it may be necessary to format the value for particular circumstances. For example, in PowerShell Manifest (psd1) the template variables are often contained in quotes, thus requiring the value to be formatted\/encoded to prevent it from breaking the existing string.<\/p>\n<p>To encode the value, use the following format:<\/p>\n<p><strong>%VARIABLE:FORMAT%<\/strong><\/p>\n<p>Where VARIABLE is the name of the variable and FORMAT is the name of the formatting type.<\/p>\n<table class=\"nicetable\" border=\"0\" width=\"600\" cellspacing=\"0\" cellpadding=\"2\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"200\"><strong>Format Name<\/strong><\/td>\n<td valign=\"top\" width=\"400\"><strong>Description<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"200\">PSSingle<\/td>\n<td valign=\"top\" width=\"400\">Format for a PowerShell single quoted string.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"200\">PSDouble<\/td>\n<td valign=\"top\" width=\"400\">Format for a PowerShell double quoted string.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"200\">C<\/td>\n<td valign=\"top\" width=\"400\">Format for C\/C++ string.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"200\">HTML<\/td>\n<td valign=\"top\" width=\"400\">Format for HTML string.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"200\">Object<\/td>\n<td valign=\"top\" width=\"400\">Format for object names (class\/variable\/members).<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>For example, to format the USERNAME into a single quote PowerShell string use the following:<\/p>\n<p><strong>%USERNAME:PSSingle%<\/strong><\/p>\n<p>If you want the variable to be a name for an object such as a class name, then use the Object format:<\/p>\n<p><strong>%FILETITLE:Object%<\/strong><\/p>\n<p><em>Note: In some cases variables may return an empty string and this may be undesirable, especially when the variable is used for an object\u2019s name. The new template format allows you to set defaults to handle cases like these. This will be discussed in more detail in a later article.<\/em><\/p>\n<p>&nbsp;<\/p>\n<h3>Creating a New Template<\/h3>\n<p>You still create templates using the same <strong>Ribbon <\/strong>&gt;<strong> File <\/strong>&gt;<strong> Create Template<\/strong> command.<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/Create-File-Template-Dialog.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Create File Template Dialog\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/Create-File-Template-Dialog_thumb.png\" alt=\"Create File Template Dialog\" width=\"644\" height=\"323\" border=\"0\" \/><\/a><\/p>\n<p>The <strong>Create File Template<\/strong> dialog has been updated to support the new features mentioned above.<\/p>\n<h4>Tags<\/h4>\n<p>You can specify the template\u2019s tags when creating a new template. For example, if you create a template for an <em>Azure<\/em> script, you specify an\u00a0<em>Azure<\/em> tag for that template. Users can then search for the tags when creating a new file.<\/p>\n<p><em>Note: PowerShell Studio will automatically set some default tags based on the file extension.<\/em><\/p>\n<h4>Type<\/h4>\n<p>You can specify the template type. There are two options available:<\/p>\n<table class=\"nicetable\" border=\"0\" width=\"600\" cellspacing=\"0\" cellpadding=\"2\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"120\"><strong>Type<\/strong><\/td>\n<td valign=\"top\" width=\"480\"><strong>Description<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"120\">File<\/td>\n<td valign=\"top\" width=\"480\">The template is used for new files.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"120\">Grid<\/td>\n<td valign=\"top\" width=\"480\">The template is used when exporting a GUI from the Database Browser or the WMI Browser.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>In order to select a Grid template, the psf file must contain a <strong>DataGridView<\/strong> control.<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/Grid-Template.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Grid Template\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/Grid-Template_thumb.png\" alt=\"Grid Template\" width=\"644\" height=\"323\" border=\"0\" \/><\/a><\/p>\n<p><em>Note: The dialog will show a warning that you need to use the<\/em> <strong>%ResultsFunction%<\/strong> <em>and<\/em> <strong>%ResultsFunctionCall%<\/strong> <em>template variables for the Grid template.<\/em><\/p>\n<p>If you specified the <strong>%SNIPPET%<\/strong> variable in your script, the dialog will present you with a field allowing you to select the desired snippet to trigger when the template is loaded. The selected snippet will be included with the template.<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/Snippet-Field.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Snippet Field\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/Snippet-Field_thumb.png\" alt=\"Snippet Field\" width=\"644\" height=\"323\" border=\"0\" \/><\/a><\/p>\n<p>Once the desired information is entered, press the <strong>Save<\/strong> button and a Save Dialog will appear. The folder that you choose to save the template to will determine the category (see below).<\/p>\n<p>&nbsp;<\/p>\n<h4>Template Categories<\/h4>\n<p>Templates can now be organized by categories (folders) to make it easier to browse your existing templates.<\/p>\n<p>For example, PowerShell specific templates are stored in a PowerShell folder:<\/p>\n<blockquote><p>[Template Directory]\\File Templates\\PowerShell&gt;<\/p><\/blockquote>\n<p>&nbsp;<\/p>\n<p>PowerShell GUI forms (psf) are stored in a Forms folder under the PowerShell category:<\/p>\n<blockquote><p>[Template Directory]\\File Templates\\PowerShell\\Forms<\/p><\/blockquote>\n<p>You can create new categories by simply creating a new folder when saving your template.<\/p>\n<h3><\/h3>\n<h3>Start Page &#8211; Subscription Status<\/h3>\n<p>If you are like me and are bad at remembering to renew software, this feature is for you. The Start Page will now remind you if your subscription is about expire.<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/Start-Page-Subscription-Notice.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Start Page - Subscription Notice\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/Start-Page-Subscription-Notice_thumb.png\" alt=\"Start Page - Subscription Notice\" width=\"644\" height=\"447\" border=\"0\" \/><\/a><\/p>\n<p>The Start Page also provides a button to log into your account for renewals.<\/p>\n<p>&nbsp;<\/p>\n<h3>New Control Set<\/h3>\n<p>We added a new control set:\u00a0<strong>ComboBox \u2013 With History<\/strong><\/p>\n<p>The control set allows you to persist the history of the combo box. For example, if you have a search field, this combo box can maintain the users search history between sessions. The control set comes with two helper functions:<\/p>\n<blockquote><p><strong>Save-ComboBoxHistory<\/strong><\/p>\n<p>This function saves the contents of the combo box in a history file. You must invoke this function in your script in order to save the history. For example, if you have a search button, it can invoke the function when the button is pressed. The history file is saved to the following location:<\/p>\n<p>ApplicationDataFolder\\ComboBoxName.history<\/p>\n<p>If the script is run within a packaged executable host, it will then use the Company and Application name instead:<\/p>\n<p>ApplicationDataFolder\\Company Name\\Product Name\\ComboBoxName.history<\/p>\n<p>Override the default file by using the <strong>Path<\/strong> parameter of the function.<\/p><\/blockquote>\n<blockquote><p><strong>Restore-ComboBoxHistory<\/strong><\/p>\n<p>Call this function to restore the history of the combo box. The control set automatically invokes this function as soon as the control becomes visible. Override the default file by using the <strong>Path<\/strong> parameter of the function.<\/p>\n<p>&nbsp;<\/p><\/blockquote>\n<h3>Event Usage<\/h3>\n<p>PowerShell Studio now displays how many controls reference the event when you hover over the event variable:<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/Event-Reference-Count.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Event Reference Count\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/Event-Reference-Count_thumb.png\" alt=\"Event Reference Count\" width=\"605\" height=\"156\" border=\"0\" \/><\/a><\/p>\n<p>This feature provides a quick way of determining if your events are wired or not.<\/p>\n<p>&nbsp;<\/p>\n<h3>New Stock Icons<\/h3>\n<p>We added new flat stock icons for your packager executable (icons courtesy of <a href=\"https:\/\/www.axialis.com\/\" target=\"_blank\" rel=\"noopener\">Axialis<\/a>).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Stock Icons\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/Stock-Icons.png\" alt=\"Stock Icons\" width=\"455\" height=\"163\" border=\"0\" \/><\/p>\n<p>&nbsp;<\/p>\n<h2>Other Improvements<\/h2>\n<p>&nbsp;<\/p>\n<h3>On Hover Parameter Set Information<\/h3>\n<p>This build trims the number of parameter sets that are displayed when hovering over a command.<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/Parameter-Set-On-Hover.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Parameter Set On Hover\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/Parameter-Set-On-Hover_thumb.png\" alt=\"Parameter Set On Hover\" width=\"644\" height=\"148\" border=\"0\" \/><\/a><\/p>\n<p>Trimming the parameter sets prevents the pop-up from covering the screen when hovering over a command that contains a large number of parameter sets. A message at the bottom will denote how many more parameter sets the cmdlet has.<\/p>\n<p>&nbsp;<\/p>\n<h3>Collapse Regions On Load Behavior<\/h3>\n<p>We modified the <strong>Collapse regions on load<\/strong> option behavior to collapse the Include nodes that are configured by the user under <strong>Ribbon<\/strong> &gt; <strong>Home<\/strong> &gt; <strong>Editor<\/strong> &gt; <strong>Regions<\/strong> &gt; <strong>Include<\/strong><em>:<\/em><\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/Include-Regions.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Include Regions\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/Include-Regions_thumb.png\" alt=\"Include Regions\" width=\"644\" height=\"359\" border=\"0\" \/><\/a><\/p>\n<p>When you load a script file, the editor will collapse the checked nodes instead of only collapsing regions.<\/p>\n<p>&nbsp;<\/p>\n<h3>Project Load Speeds<\/h3>\n<p>We further improved load speeds of projects that contain large amounts of psf files.<\/p>\n<p>&nbsp;<\/p>\n<h3>Export Module \u2013 Improved Cache Speed<\/h3>\n<p>When you export your module project, PowerShell Studio refreshes the cache for the module.<\/p>\n<p><a href=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/Module-Cache-Update.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" style=\"background-image: none; padding-top: 0px; padding-left: 0px; display: inline; padding-right: 0px; border-width: 0px;\" title=\"Module Cache Update\" src=\"https:\/\/www.sapien.com\/blog\/wp-content\/uploads\/2018\/04\/Module-Cache-Update_thumb.png\" alt=\"Module Cache Update\" width=\"644\" height=\"164\" border=\"0\" \/><\/a><\/p>\n<p>The caching process now completes in a fraction of the time it took in previous versions.<\/p>\n<p>&nbsp;<\/p>\n<h2>Feedback<\/h2>\n<p>Please continue providing your feedback. Many of the new features included in the service builds are suggestions from users like you. Submit your suggestions or feature requests on the <a href=\"https:\/\/www.sapien.com\/forums\/viewforum.php?f=9\">Wish List and Feature Requests<\/a> forum or the new <a href=\"https:\/\/www.sapien.com\/requests\">Feature Requests<\/a> page.<\/p>\n<p>You can view the complete service build log <a href=\"https:\/\/www.sapien.com\/software\/version_history\">here<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Today we released a new service build of PowerShell Studio 2018 (v5.5.151). This service build is included as part of the regular update cycle for our subscribers. &nbsp; New Features This service release introduces changes to our file templates format, new file templates, custom actions for your installer, and more. &nbsp; Custom Actions for MSI [&hellip;]<\/p>\n","protected":false},"author":10,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[703,21,1241,632],"tags":[28,1244,645,155,141],"class_list":["post-14928","post","type-post","status-publish","format-standard","hentry","category-powershell-studio","category-software-news","category-software-release","category-whats-new-software-news","tag-powershell","tag-powershell-studio-2018","tag-service-build-2","tag-service-release","tag-whats-new"],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/posts\/14928","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/comments?post=14928"}],"version-history":[{"count":8,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/posts\/14928\/revisions"}],"predecessor-version":[{"id":14936,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/posts\/14928\/revisions\/14936"}],"wp:attachment":[{"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/media?parent=14928"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/categories?post=14928"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dev.sapien.com\/blog\/wp-json\/wp\/v2\/tags?post=14928"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}