{"version":"1.0","provider_name":"Visual Studio Setup","provider_url":"https:\/\/devblogs.microsoft.com\/setup","author_name":"Heath Stewart","author_url":"https:\/\/devblogs.microsoft.com\/setup\/author\/heaths\/","title":"Hacking the CAB for Smaller Patches","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"YGHsvaUAXV\"><a href=\"https:\/\/devblogs.microsoft.com\/setup\/hacking-the-cab-for-smaller-patches\/\">Hacking the CAB for Smaller Patches<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/devblogs.microsoft.com\/setup\/hacking-the-cab-for-smaller-patches\/embed\/#?secret=YGHsvaUAXV\" width=\"600\" height=\"338\" title=\"&#8220;Hacking the CAB for Smaller Patches&#8221; &#8212; Visual Studio Setup\" data-secret=\"YGHsvaUAXV\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script>\n\/*! This file is auto-generated *\/\n!function(d,l){\"use strict\";l.querySelector&&d.addEventListener&&\"undefined\"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!\/[^a-zA-Z0-9]\/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret=\"'+t.secret+'\"]'),o=l.querySelectorAll('blockquote[data-secret=\"'+t.secret+'\"]'),c=new RegExp(\"^https?:$\",\"i\"),i=0;i<o.length;i++)o[i].style.display=\"none\";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute(\"style\"),\"height\"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):\"link\"===t.message&&(r=new URL(s.getAttribute(\"src\")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener(\"message\",d.wp.receiveEmbedMessage,!1),l.addEventListener(\"DOMContentLoaded\",function(){for(var e,t,s=l.querySelectorAll(\"iframe.wp-embedded-content\"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute(\"data-secret\"))||(t=Math.random().toString(36).substring(2,12),e.src+=\"#?secret=\"+t,e.setAttribute(\"data-secret\",t)),e.contentWindow.postMessage({message:\"ready\",secret:t},\"*\")},!1)))}(window,document);\n\/\/# sourceURL=https:\/\/devblogs.microsoft.com\/setup\/wp-includes\/js\/wp-embed.min.js\n<\/script>\n","thumbnail_url":"https:\/\/devblogs.microsoft.com\/setup\/wp-content\/uploads\/sites\/13\/2018\/08\/vsfeaturemed.png","thumbnail_width":559,"thumbnail_height":350,"description":"Working on 32- and 64-bit patch support&nbsp;for Developer Division projects like the .NET Framework 2.0 and Visual Studio 2005, I&#8217;ve been involved with many threads and in many meetings about the various scenarios and solutions for producing patches that target our supported platform architectures. .NET will ship in three different flavors for x86, x64, and [&hellip;]"}