{"id":860,"date":"2012-04-04T19:01:09","date_gmt":"2012-04-04T23:01:09","guid":{"rendered":"https:\/\/www.tmurgent.com\/TmBlog\/?p=860"},"modified":"2013-04-06T11:45:25","modified_gmt":"2013-04-06T15:45:25","slug":"app-v-5-0-beta-the-end-of-csidls","status":"publish","type":"post","link":"https:\/\/www.tmurgent.com\/TmBlog\/?p=860","title":{"rendered":"App-V 5.0 Beta: The End of CSIDLs"},"content":{"rendered":"<p><strong>Note:<\/strong>This is part of a series on App-V 5.0: <a href=\"https:\/\/www.tmurgent.com\/TmBlog\/?p=857\">Part 1<\/a> <a href=\"https:\/\/www.tmurgent.com\/TmBlog\/?p=860\">Part 2<\/a> <a href=\"https:\/\/www.tmurgent.com\/TmBlog\/?p=867\">Part 3<\/a> <a href=\"https:\/\/www.tmurgent.com\/TmBlog\/?p=876\">Part 4<\/a> <a href=\"https:\/\/www.tmurgent.com\/TmBlog\/?p=885\">Part 5<\/a><\/p>\n<p>Plowing my way through the new Sequencer.\u00a0 Looking at the options page of the sequencer, the <strong>ParseItems<\/strong> look a little different.<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.tmurgent.com\/TmBlog\/wp-content\/uploads\/2012\/04\/DeathOfCSIDLs.PNG\" alt=\"ParseItems\" \/><\/p>\n<p>One of the most important jobs of the sequencer is to make the package Machine, OS, and User neutral.\u00a0 The sequencer does this by locating hard coded paths in the windows registry, file path info, and maybe looking into some files like .ini files (although some of that latter support has been removed over the years).<\/p>\n<p>When we built the product, we latched onto a Microsoft developer technique to produce code that was OS neutral &#8211; CSIDL.\u00a0\u00a0\u00a0 This stands for &#8220;Common System InDependent&#8221; plus something starting in the letter L.\u00a0 Different documentation in the day called it &#8220;List&#8221; or &#8220;Link&#8221; depending on which you found.\u00a0 CSIDL solved the problem of a client windows installed to the Windows folder or WindowsNT folder (which was popular at that time), or on a drive other than &#8220;C&#8221; (popular under Citrix).\u00a0 When Windows Vista came out, it also solved the problem of &#8220;Documents and Settings&#8221; versus &#8220;Users&#8221; folder names.\u00a0 So whenever the sequencer saw &#8220;C:\\WindowsNT&#8221; it would replace it with &#8220;%CSIDL_WINDOWS&#8221; in the sft package.\u00a0 Then the client could replace the CSIDL with whatever was appropriate there.<\/p>\n<p>Microsoft originally documented the CSIDLs in a KB article that has long since been removed.\u00a0 It was updated in each OS release to include sections of OS specific changes.\u00a0 App-V, at least prior to 5.0, used these CSIDLS like environment variables in these Parse Items.\u00a0 There were a few non CSIDL additions as became necessary, like the famous %SFT_MNT% (representing the Q: drive).<\/p>\n<p>But with Windows Vista, Microsoft deprecated CSIDL and removed the KB (It seems they now have one with <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/bb762494(v=vs.85).aspx\">a partial listing <\/a>)\u00a0and started recommending developers use a new, but very similar KNOWNFOLDERID\u00a0 <a href=\"https:\/\/msdn.microsoft.com\/en-us\/library\/windows\/desktop\/dd378457(v=vs.85).aspx\">KNOWNFOLDERID<\/a>\u00a0syntax.<\/p>\n<p>It was unclear how App-V would handle this transition, and until this Beta they have been able to ignore it.\u00a0 But here in the 5.0 Beta, we can see that they have replaced the old CSIDL syntax with an App-V specific syntax that they can map into whatever the OS supports to help with the mapping.\u00a0 This is nothing more than in internal plumbing change that will make it easier as the OS continues to evolve.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Note:This is part of a series on App-V 5.0: Part 1 Part 2 Part 3 Part 4 Part 5 Plowing my way through the new Sequencer.\u00a0 Looking at the options page of the sequencer, the ParseItems look a little different. One of the most important jobs of the sequencer is to make the package Machine,&hellip; <a class=\"more-link\" href=\"https:\/\/www.tmurgent.com\/TmBlog\/?p=860\">Continue reading <span class=\"screen-reader-text\">App-V 5.0 Beta: The End of CSIDLs<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[36,47,48],"tags":[27,4,13],"class_list":["post-860","post","type-post","status-publish","format-standard","hentry","category-all","category-appv5","category-sequencing","tag-5-0","tag-app-v","tag-sequencing","entry"],"_links":{"self":[{"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/posts\/860","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\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=860"}],"version-history":[{"count":10,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/posts\/860\/revisions"}],"predecessor-version":[{"id":1430,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=\/wp\/v2\/posts\/860\/revisions\/1430"}],"wp:attachment":[{"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=860"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=860"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tmurgent.com\/TmBlog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=860"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}