{"id":2402,"date":"2015-11-29T15:00:00","date_gmt":"2015-11-29T20:00:00","guid":{"rendered":"https:\/\/www.tmurgent.com\/TmBlog\/?p=2402"},"modified":"2015-12-08T15:21:23","modified_gmt":"2015-12-08T20:21:23","slug":"im-converted-using-the-converter-from-app-v-4-x-to-5-1","status":"publish","type":"post","link":"https:\/\/www.tmurgent.com\/TmBlog\/?p=2402","title":{"rendered":"I&#8217;m Converted: How I Convert Packages from App-V 4.x to 5.1"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/www.tmurgent.com\/TmBlog\/wp-content\/uploads\/2015\/Convert.png\" alt=\"Convert\" width=\"84\" align=\"left\" \/>This has to rank among the top posts that I never thought I would write in my entire life.\u00a0 I mean, it is\u00a0right up there with &#8220;Why I&#8217;ll never play golf again&#8221;.\u00a0 If we had\u00a0subtitles, the subtitle of this article would be &#8220;<b><i>The 5.1 Converter Doesn&#8217;t Suck<\/i><\/b><i><\/i>&#8220;.\u00a0 High praise indeed!<\/p>\n<p><strong>Abstract<\/strong><\/p>\n<p>This post details out how to organize an efficient conversion project to move packages from Microsoft App-V 4.x to 5.x.\u00a0\u00a0The example project uses App-V 5.1 and\u00a0the free AppV_Manage\u00a0tool (5.1.3) to efficiently manage the process.<\/p>\n<p><strong>The Back Story<\/strong><\/p>\n<p>When Microsoft re-wrote App-V in version 5, they made such major changes to how application virtualization worked, modernizing it for today&#8217;s platforms and apps, they had to change for format of the packaged applications in an incompatible way. To recognize how dramatic that is, the last time there was a major breaking change in the format was back in 2003.<\/p>\n<p>So as part of the 5.0 release Microsoft included a package conversion utility. They told us how wonderful it was. We (the App-V MVPs) tried it. It wasn&#8217;t. We generally told customers that it probably wasn&#8217;t worth the bother. Particularly galling was that it worked better on packages that were originally sequenced to the VFS instead of into the root folder. Microsoft continued recommending root folder sequencing right up to the end of 4.x (even though I started training people to use VFS installs years before). So a very large portion of converted apps wouldn&#8217;t work for Microsoft customers that I didn&#8217;t train.<\/p>\n<p>So Microsoft improved it in 5.0 SP2. We tested it. It wasn&#8217;t that improved.<\/p>\n<p>Then they improved it in 5.0 SP3. Maybe others tested it, I didn&#8217;t bother.<\/p>\n<p>Then they improved in in 5.1. Being jaded, I barely even noticed it in the ReadMe for the release. But it was a side discussion that I had at the MVP Summit with the development team that lead me to give it a shot. While the long version of the results are in the post below, the bottom line is <strong><em>the 5.1 converter doesn&#8217;t suck<\/em><\/strong>. They have taken a lot of feedback from customers that tried conversions in the past and made changes so that those packages will now convert. It doesn&#8217;t mean they all work, but for those that haven&#8217;t made the move over to App-V 5 yet, it is probably worth the effort.<\/p>\n<p><strong>Overview of\u00a0my Conversion Process<\/strong><\/p>\n<p>Moving from 4.x to 5.x\u00a0should be treated\u00a0a project.\u00a0 If you use the App-V Management Server, you&#8217;ll be replacing the servers.\u00a0 You&#8217;ll be installing new App-V Clients &#8212; maybe in parallel or maybe as a replacement.\u00a0 And you need to convert or repackage the apps.<\/p>\n<p>That last sentence, convert or repackage, shouldn&#8217;t be taken lightly and should be run as a project all on it&#8217;s own.\u00a0 Just as it would be to certify the apps on Windows 10 (which you should do as part of this project anyway), you&#8217;ll need to test, test, test.\u00a0 The image below is an overview of that process:<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.tmurgent.com\/TmBlog\/wp-content\/uploads\/2015\/ConversionFlow.png\" alt=\"Convert\" width=\"650\" \/><\/p>\n<p>The work-flow has two distinct stages, conversion and testing.\u00a0 Each of the red-tinged boxes are tasks which may result in a package being removed as a candidate for conversion.\u00a0 Note how happy the user looks at the end of the project!<\/p>\n<p><strong>Stage 1: Conversion<\/strong><\/p>\n<p>It starts by getting a list of all of the existing software packages.<\/p>\n<p>Because the\u00a0work is automated and difference in effort to attempt conversion of an extra package is quite\u00a0minor, I prefer to\u00a0attempt the conversion on every package, so I don&#8217;t prefilter.<\/p>\n<p>In parallel,\u00a0you will want to filter out some of the packages. Often, this effort is actually performed by someone other than the hands-on person doing the rest of the work in this\u00a0stage.<\/p>\n<p>This might involve running reports from the existing management server to determine apps that really aren&#8217;t being used.\u00a0 You should probably involve the business units to review the list and at least give them an opportunity to say they don&#8217;t need some of them.\u00a0 You can do this filtering up-front, but I depict this as happening in parallel during stage 1, as I find it better to do the first part, which is quite automated, against all of the packages in case some packages get filtered out and down the line someone pops up with a need for a filtered out app.<\/p>\n<p>As part of filtering, you will also want to develop a prioritization of the list.\u00a0 This will dictate the order in which packages are verified and, if necessary, remediated.\u00a0 You should also consider whether you want a policy to attempt remediation, or just mark for repackaging, any issues found.<\/p>\n<p>The converter requires the 4.x packages\u00a0to be up to 4.5 to be converted.\u00a0 I suppose you could open and save older packages in a 4.6 based sequencer first, but maybe those should be repackaged anyway.<\/p>\n<p><strong>Stage 1 Details: VM Prep<\/strong><\/p>\n<p>You basically use a VM with the latest version of the sequencer on it.\u00a0 If there are any apps that were sequenced on an x64 OS, you&#8217;ll want this VM to be x64 also.\u00a0 There are two parts to the conversion, which is done via a script in an elevated (RunAs Administrator) 32-bit PowerShell window.<\/p>\n<p>The conversion doesn&#8217;t care what is on the VM, so it doesn&#8217;t need snapshots of clean machines &#8211; there is no\u00a0runtime monitoring involved, just an asset conversion.<\/p>\n<p>You will want\u00a0a folder that has all of the existing packages under it.\u00a0 It doesn&#8217;t matter what the folder structure is, and it can be a network share.\u00a0 You can point it to the current content store of your production packages as no files are opened for write access.<\/p>\n<p>You will want an empty\u00a0local folder that will store the converted packages.<\/p>\n<p>You will want a PowerShell script to perform the conversion.\u00a0<a href=\"https:\/\/www.tmurgent.com\/TmBlog\/wp-content\/uploads\/2015\/Convert\/ConvertFolderOfOldAppVPackages.zip\">Here is a link to a zip file containing my script<\/a>.\u00a0 The script has a bunch of special stuff to take care of weird things like multiple copies of the same package and it provides some statistics.\u00a0 The only thing you need to do is change the first two non-comment lines, where you reference the source folder (or share) of the content source and the top level destination folder.<\/p>\n<p><strong>Stage 1: Testing and Converting<\/strong><\/p>\n<p>The script will test each package to see if it is likely to convert.\u00a0 If there are no errors recorded, it will then run the conversion.\u00a0 The conversion also runs the test, but there are situations where the conversion fails to display a warning because of a secondary issue that only is found during conversion &#8212; and I like to know about all of these when I review the output.<\/p>\n<p>You just start the script and come back later on to review the results. The script provides on-screen display as it is working, and each output folder has a copy of the test\/conversion results.\u00a0 I did find a couple of situations where the on-screen display reported an error that didn&#8217;t appear in the output &#8212; so you&#8217;ll want to scan the on-screen display for red text.<\/p>\n<p>On my system with my packages, it took between 5 seconds and 15 minutes to attempt to convert each package.\u00a0 The larger times are for very large packages, like AutoCAD and ArcGIS.<\/p>\n<p>In my sample of 170 packages,\u00a0I averaged 1.25 minutes each, but as you can see in the graph below, most packages convert quickly.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.tmurgent.com\/TmBlog\/wp-content\/uploads\/2015\/ConvertTimeCounts.png\" alt=\"ConvertTimes\" \/><\/p>\n<p><strong>Stage 1: Analyzing Conversion Output<\/strong><\/p>\n<p>The packages that I ran were not necessarily production quality packages. I simply took a subset of packages left over from some of our old App-V 4.x training classes, created by people that were learning and weren&#8217;t necessarily great packages. So some of the problems that I found were simply bad 4.x packages to start with and you probably won&#8217;t run into these yourself.<\/p>\n<p>Here is a sample output file, ConvertedTestOutput.txt, produced by the script:<\/p>\n<pre>Monday, November 9, 2015 8:57:39 AM\r\nTEST CONVERSION:\r\nSource\u00a0\u00a0\u00a0\u00a0\u00a0 : \\\\tmuhost\\Content\\FB_APPS\\IBM_WMBToolkit_7.0\\5_ProdRelease\\App-V\r\nErrors\u00a0\u00a0\u00a0\u00a0\u00a0 : {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 The package converter detected one or more applications in your package that is targeted for an \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 unsupported operating system.\u00a0 This package cannot be converted unless the target operating system \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 restriction is removed from the .osd file.\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\nWarnings\u00a0\u00a0\u00a0 : {}\r\nInformation : {}\r\nTarget\u00a0\u00a0\u00a0\u00a0\u00a0 :\r\nACTUAL CONVERSION:\r\nSource\u00a0\u00a0\u00a0\u00a0\u00a0 : \\\\tmuhost\\Content\\FB_APPS\\IBM_WMBToolkit_7.0\\5_ProdRelease\\App-V\r\nErrors\u00a0\u00a0\u00a0\u00a0\u00a0 : {\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 The package converter detected one or more applications in your package that is targeted for an \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 unsupported operating system.\u00a0 This package cannot be converted unless the target operating system \r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 restriction is removed from the .osd file.\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 }\r\nWarnings\u00a0\u00a0\u00a0 : {}\r\nInformation : {}\r\nTarget\u00a0\u00a0\u00a0\u00a0\u00a0 :\r\n<\/pre>\n<p>The issues that the test\/conversion found in my packages included the following lists:<\/p>\n<p style=\"padding-left: 30px;\"><strong>Errors<\/strong><\/p>\n<ul>\n<li style=\"padding-left: 60px;\"><em>Target OS in OSDs<\/em>.\u00a0 The original packager had specified particular OS versions that were supported by the package.\u00a0 Normally, I don&#8217;t recommend setting these but some companies do.\u00a0 If the listed OSs in the OSD files include OS versions not supported by App-V 5 (such as Windows XP or Vista), the test package will fail.\u00a0 This package is a good candidate for remediation by removing the OS version tags in the source OSD files.<\/li>\n<li style=\"padding-left: 60px;\"><em>Multiple sprj files in the folder.<\/em>\u00a0 You must use a folder with only one sprj file as the source.\u00a0 Sometimes people mess this up, especially with package upgrades.\u00a0 This package may also be a good candidate for remediation by separating out things.<\/li>\n<li style=\"padding-left: 60px;\"><em>Invalid OSD File.<\/em>\u00a0 I&#8217;m not sure exactly what was wrong with the file.\u00a0 It pointed to an invalid character at a specific line and column of the file.\u00a0 Clearly the packager had manually edited the file in an attempt to solve elevation, setting an environment variable &#8220;__COMPAT_LAYER&#8221;.\u00a0 The location of the error was pointing to the first underscore.\u00a0 Possibly this is a converter bug, or perhaps the user edited using a different language pack or something else strange (we get a lot of Europeans coming over to our classes).\u00a0 In any case, I know that setting this inside the package won&#8217;t help and in App-V 5 you must use a start of VE script to do the equivalent.\u00a0 So, at least in this case,\u00a0the package might work with remediation &#8211; removing the offending line from the OSD and adding in the appropriate script in the DeploymentConfiguration.xml file.<\/li>\n<li style=\"padding-left: 60px;\"><em>Missing OSD.<\/em>\u00a0 The sprj file listed an OSD file not present.\u00a0 Probably a bad input package at this point and resequencing is recommended.<\/li>\n<li style=\"padding-left: 60px;\"><em>Inconsistent Environment Variables in OSDs.<\/em>\u00a0 The original packager manually edited the PATH variable in some, but not all of the OSD files.\u00a0 Because the environment variables are no longer set at the application level, but at the package level, the converter doesn&#8217;t know which PATH to take.\u00a0 This is a candidate for remediation by fixing the source OSD files to be consistent.<\/li>\n<li style=\"padding-left: 60px;\"><em>Failed to generate MSI.\u00a0 <\/em>The name of the input sprj file was simply &#8220;.sprj&#8221;.\u00a0 Probably a failed attempt by someone to rename the file.\u00a0 So I&#8217;d be inclined to just repackage &#8211; even though I don&#8217;t care about the optional MSI.<\/li>\n<\/ul>\n<p style=\"padding-left: 30px;\"><strong>Warnings<\/strong><\/p>\n<ul>\n<li style=\"padding-left: 60px;\"><em>Missing ICON Folder<\/em>.\u00a0 Some source packages that are essentially middleware or plug-ins, in particular ones that have no shortcuts or file associations, will generate this warning.\u00a0 You may safely ignore it.<\/li>\n<li style=\"padding-left: 60px;\"><em>Duplicate Shortcuts<\/em>.\u00a0 This requires remediation or repackaging.<\/li>\n<li style=\"padding-left: 60px;\"><i>Dependency Group.\u00a0 <\/i>This is a great warning!\u00a0 It tells you that this package is part of a Dynamic Suite Composition (DSC) group, and lists the other packages in the group.\u00a0 The conversion is otherwise OK, it just reminds you to also build a new App-V 5 Connection group to complete the functionality.<\/li>\n<li style=\"padding-left: 60px;\"><em>Script reference with a ScriptBody.<\/em>\u00a0 This will require manual massaging of the DeploymentConfiguration file to achieve the equivalent.<\/li>\n<li style=\"padding-left: 60px;\"><em>Script with Event=Launch.<\/em> This requires manual work.\u00a0 If only one of these warnings occur, you can tie the action to the AppID in the new package, but if there are multiple App-V 5 doesn&#8217;t allow that.\u00a0 The solution is to combine individual app scripts into a start of VE script, or to embed the scripts as files in the package.\u00a0 The file in the package will have to add the app launch, and you would need to change the shortcuts to launch the file.\u00a0 You&#8217;ll still have to do that work with repackaging, but I&#8217;d probably go with repackaging.<\/li>\n<li style=\"padding-left: 60px;\"><em>Script with Event=Launch and Timing=Post.<\/em>\u00a0 App-V 5 has no equivalent script.\u00a0 Maybe you really want to move it to a termination of the VE script.\u00a0 Otherwise make it a file to launch the app and then do the script action when it returns and change the shortcut to point to this. You&#8217;ll still have to do that work with repackaging, but I&#8217;d probably go with repackaging.<\/li>\n<\/ul>\n<p>One of the more pressing issues in conversion is that until recently was that all OSD scripts were silently ignored.\u00a0 But in 5.1, the converter now converts a\u00a0the OSD scripts that were &#8220;HREF&#8221; style scripts for start and end of the Virtual Environment (VE), which is most of the scripts, and it warns you on anything else.\u00a0 HREF scripts were one line scripts, so it was easy to handle those.\u00a0 For ScriptBody scripts, you probably want to place the text into a cmd file and add it to the package, and then add a script to the DeploymentConfig file to run cmd.exe with the file.\u00a0 For extra points, you might try just using the ScriptRunner with multiple lines instead (if the ScriptBody had multi-line things like if\/else or loops this won&#8217;t work and you&#8217;ll have to create a cmd file).<\/p>\n<p>Ultimately with 5.1, I really prefer scripts to be actual files in the package (easier for others to maintain), and the request for them to run done by editing the internal manifest file.\u00a0 So if script issues pop-up I probably want to repackage.<\/p>\n<p><strong>Stage 2: Testing<\/strong><\/p>\n<p>Stage 2 is where the real manpower effort is going to be expended.\u00a0 Unlike Stage 1, where a half-day effort might be all that is required to handle all the packages, stage 2 happens pretty much serially (perhaps some parallelism with multiple people involved) and each package processed has a significant amount of effort involved with it.<\/p>\n<p>You will end up repackaging some apps, so you want to filter out bad candidates as soon as possible to reduce the amount of rework required for the project.<\/p>\n<p>The problem with information available from the conversion is not what the previous process tell us is wrong.\u00a0 Those are valid problems that must be dealt with manually.\u00a0 The problem\u00a0lies in\u00a0what it doesn&#8217;t tell us;\u00a0so you&#8217;ll have to test every package.<\/p>\n<p>In the workflow, I break this down for an efficient process to quickly weed out bad candidates.<\/p>\n<p><strong>Stage 2: VM Prep<\/strong><\/p>\n<p>The first four steps of Stage 2 are performed by a packager on a special Virtual Machine.\u00a0 This should be a clean version of the OS with the App-V Client, and the (free) TMurgent tool AppV_Manage.\u00a0 You will want to download <a href=\"https:\/\/www.tmurgent.com\/appv\/index.php\/en\/resources\/AppV_Manage\/221-appv-manage-introduction?utm_source=hootsuite\" target=\"_blank\">the latest version available<\/a>, at least 5.1.3 (as changes were made to support converted packages).\u00a0You\u00a0configure AppV_Manage to point to the network share\u00a0where all the converted packages are located.\u00a0 You should also configure the App-V client to use Shared Content Store Mode (even if the client VM isn&#8217;t inside the data center)\u00a0to speed things up.<\/p>\n<p>You will want a snapshot of the VM so that you can revert to this clean-and-ready-to-test image.\u00a0 Even though the apps to be tested are virtualized, reverting the snapshot before each package is to be tested is important to reduce confusion due to publishing activities that occur outside of the virtual environment.<\/p>\n<p><strong>Stage 2: Analyze<\/strong><\/p>\n<p>You start up App-V Manage, select the package, and click the Analyze button.\u00a0 The software will run a static analysis of the converted App-V Package.\u00a0 This analysis is primarily designed to detail out what is in the package, which is less interesting for converted packages, but it does call out certain issues.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.tmurgent.com\/TmBlog\/wp-content\/uploads\/2015\/Analyze1.png\" alt=\"Analyze Summary\" width=\"650\" \/><\/p>\n<p>The yellow highlighting is largely what you are looking for.\u00a0 You can ignore the highlighted Fonts, as\u00a0it just points out that there are some non-installed fonts in the package.\u00a0 Since the app was OK in 4.x, these don&#8217;t matter.<\/p>\n<p>To investigate the Services warning,\u00a0you click the\u00a0button labeled\u00a0Services on the left to see the detail.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.tmurgent.com\/TmBlog\/wp-content\/uploads\/2015\/Analyze2.png\" alt=\"Analyze Detail\" width=\"650\" \/><\/p>\n<p>For my packages, the primary issue I found in the Analyzer was with virtual services.\u00a0 While App-V 4.x supported virtual services running under different accounts, App-V 5 will only virtualize services marked to run in the LocalSystem account.\u00a0 So it ignores everything else.\u00a0 If the service is important, you&#8217;ll need to repackage, changing the account to LocalSystem.<\/p>\n<p><strong>Stage 2: Add\/Publish<\/strong><\/p>\n<p>Using AppV_Manage, you add and publish the package.\u00a0 If there were OSD modifications in the old package, such as scripts, you&#8217;ll probably want to add the package with the DeploymentConfiguration file.<\/p>\n<p>In my testing, only a couple of packages failed this step, and that was because the input packages were bad.\u00a0 In both cases, someone had attempted to change the filename of the sprj file, and had ended up with a file named &#8220;.sprj&#8221;.\u00a0 While that worked in 4.x, you can&#8217;t have an App-V package filename of &#8220;.appv&#8221;, which is what the converter generated.\u00a0 Those packages had to be resequenced.<\/p>\n<p><strong>Stage 2: CMD in VE<\/strong><\/p>\n<p>With the package published, you click on the Debug Packages tab of AppV_Manage, select the package, and click the CMD button on the bottom of the interface.<\/p>\n<p>This launches a cmd prompt inside the virtual environment.\u00a0\u00a0If the Analyzer showed that the package had autostart virtual services, you should check the list of virtualized processes in the AppV_Manage tool to see if the service started. If there were start of virtual environment scripts to be run, check that these were successful.\u00a0 A failure here means you should probably resequence the package.<\/p>\n<p><strong>Stage 3: App in Debug<\/strong><\/p>\n<p>After closing the CMD window, click on the App button on the bottom of the AppV_Manage Interface.\u00a0 This will provide you a selectable list of the shortcuts of the package.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.tmurgent.com\/TmBlog\/wp-content\/uploads\/2015\/Runtime1.png\" alt=\"Runtime Analyze Selection\" width=\"650\" \/><\/p>\n<p>Pick the shortcut you want to launch and click the Run button.\u00a0 Not only is it easier to find the shortcut (especially when testing on a Windows 8-10 system), you get a bonus runtime analyzer that will help you hunt down issues that might come up.<\/p>\n<p>As part of a conversion project, you might not want to spend time with the runtime analyzer other that as a launching utility (you can click the pause button on the monitor dialog that appears to speed things up on large packages).\u00a0 Instead, you probably want to use it only to investigate any runtime issues that appear prior to repackaging.<\/p>\n<p><strong>App Expert \/ Pre-Production Testing<\/strong><\/p>\n<p>An identified application expert, often someone from the business unit that uses the application, runs a more thorough test of the application.\u00a0 This is more likely to be done using the appropriate deployment mechanism (App-V Server or Configuration Manager) to also test the distribution steps.<\/p>\n<p>Additional pre-production testing might also later occur, especially with business critical applications.<\/p>\n<p><strong>Summary<\/strong><\/p>\n<p>This article provides\u00a0some decent approaches to a conversion project.\u00a0 The percentage of packages that will successfully be converted will vary significantly, so I&#8217;m not going to quote you a number.\u00a0 The mixture of packages that you have, especially involving very old apps and in-house apps, will have the biggest impact on the number.\u00a0 With in-house apps, you can often expect a very high (near 100%) or very low\u00a0(near 0%) conversion rate.<\/p>\n<p>So how did my sample of not-quite-ready-for-production packages work out? The chart below shows the filtering process through the smoke test.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.tmurgent.com\/TmBlog\/wp-content\/uploads\/2015\/Success.png\" alt=\"Success Rate Chart\" \/><\/p>\n<p>So what did it take for me to do this on 170+ packages?\u00a0 From the start through completion of the static analysis (the first step on Stage 2)\u00a0it cost about 1 man-day.\u00a0 Mind you I wasn&#8217;t doing any\u00a0Rationalization, so consider that cost as well.\u00a0\u00a0At that point, you can see above that most of the bad packages had been eliminated from the pack. The remaining work took about 10-20 minutes per package on average.\u00a0\u00a0 A full test of the package functionality would still be needed, and that would be more costly than the time spent so far, but not bad!<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.tmurgent.com\/TmBlog\/wp-content\/uploads\/2015\/Convert\/Result.png\" alt=\"Stage 1 Results\" align=\"right\" \/> I ran a second pass on stage one on a larger set of packages, including many that were considerably older. Here is how they did. Not bad, eh?<\/p>\n<p>For companies with a large inventory of 4.x packages, I believe it is worth the effort.<\/p>\n<p>For additional information on converting packages, please refer to <a href=\"https:\/\/technet.microsoft.com\/en-us\/library\/jj713472.aspx\" target=\"_blank\">https:\/\/technet.microsoft.com\/en-us\/library\/jj713472.aspx<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>This has to rank among the top posts that I never thought I would write in my entire life.\u00a0 I mean, it is\u00a0right up there with &#8220;Why I&#8217;ll never play golf again&#8221;.\u00a0 If we had\u00a0subtitles, the subtitle of this article would be &#8220;The 5.1 Converter Doesn&#8217;t Suck&#8220;.\u00a0 High praise indeed! Abstract This post details out&hellip; <a class=\"more-link\" href=\"https:\/\/www.tmurgent.com\/TmBlog\/?p=2402\">Continue reading <span class=\"screen-reader-text\">I&#8217;m Converted: How I Convert Packages from App-V 4.x to 5.1<\/span><\/a><\/p>\n","protected":false},"author":4,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[47,48,50,1],"tags":[31],"class_list":["post-2402","post","type-post","status-publish","format-standard","hentry","category-appv5","category-sequencing","category-tools","category-uncategorized","tag-appv5","entry"],"_links":{"self":[{"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/posts\/2402","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2402"}],"version-history":[{"count":24,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/posts\/2402\/revisions"}],"predecessor-version":[{"id":2428,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/posts\/2402\/revisions\/2428"}],"wp:attachment":[{"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2402"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2402"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2402"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}