mshcMigrate.exe‎ > ‎

Change Notes

Current version:  2.0 Build 75 - (for MS Help Viewer 1.0 & 2.0)
  • Build 22
    • Converts all inter-topic <a href="?"> links to <a href="ms-xhelp:///?Id=TheTopicsID">
      Microsoft confirm that normal links wont work for H3 version 1.0 and neither will inter-topic  #bookmarks links.
    • Rename Microsoft.Help.SelfBranding to Microsoft.Help.SelfBranded
      Microsoft confirm the code looks for meta tags Microsoft.Help.SelfBranded or SelfBranded
    • Now allows Help 2 meta tags (was crashing during merge). To do this we add these xml namespaces...
      <html xmlns="" xmlns:MSHelp="" xmlns:mshelp="">
    • Rename option to KeepH2HeaderTags which is TRUE by default. Set FALSE (uncheck) to comment out H2 header tags.
    • If TOC has more than one base item parent all base items under a single root item.
  • 11-Dec-2009, Build 26
  • 12-Dec-2009, Build 27
    • Fixed: Adding K & F1 Index meta tags to HTML files was wrong. Was reading from the wrong location resulting in incorrected keyword & F1 meta tags.
    • Fixed: When converting links to <a href="ms-xhelp:///?Id=TheTopicsID"> some links starting with ../ were not convert.
    • Fixed: When adding MSHelp namespace declaration to <html> tag it should have added both a lowercase and normal case declaration.
      <html xmlns:MSHelp="" xmlns:mshelp="" xmlns="">
    • New: There are now 2x Template files in the same folder as the mshcMigrate.exe. These files are used when creating \_AutoGenerate\_AutoFile_Blank001.html etc. You can modify the Templates if you want to change the message in the file. 
      _AutoFile_Blank.html_TEMPLATE, _AutoFile_Redirect.html_TEMPLATE, 
  • 22-Dec-2009, Build 28
    • Now installs a template file (you can customize) for when temporary files are created.
    • Now installs and registers a .NET DLL helpwareh3lib.dll. This DLL allows our win32 code to more accurately validate XHTML files (using similar .NET code to the Microsoft merge code).
    • Migrate now converts all <img src="..."> links to a full path from the root. This is required for version 1.0. Unfortunately this will break your <img> links for normal (non-Help 3) HTML work.
    • Migrate now converts all standard <a href="..."> links to <a href="ms-xhelp:///?Id=xxx">. At merge time these are fully expanded to a full ID link path. Standard inter-topic links will be supported in a later release.
    • Migrate strips all bookmarks from inter-topic links (not supported in release 1.0).
    • Migrate now converts all simple HTML entities (like &amp;) to Unicode entities such as &#38; Simple HTML entities such as &amp; &gt; &lt; cause merge errors in release 1.0.  Apparently this is because the MS code uses XML routines to read the XHTML files and although &amp; is valid XHTML, the XML code does not like it.
    • Note: Microsoft are aware of all these release 1.0 problems and will address them in a future release.
  • 29-Dec-2009, Build 29
    • HTML Help 1.x
      • Now migrates HH 1.x projects (.hhp) and help files (.chm). 
      • For .hhp source we migrate project [MAP] info into F1 topic meta tags.
      • Added a category meta tag so that HH1.x F1 meta tags can be found in the larger collection.
    • Folder As Source
      • You can now specify the name of a folder as the source. In this case we copy all files to the staging folder and use whatever TOC/Index/F1Index files we find in the root folder of the help project. If more than one TOC (or Index of F1 Index) file is found then you will be asked to choose.
    • Fix
      •  Now correctly migrates Index file entries to Help 3 meta tags. Previously a error was scrambling index entries.
    • mshcZipFilter.ini
      • Control what is compiled into the .mshc zip file by adding file filters to the file "mshcZipFilter.ini" (in the mshcMigrate.exe folder).
    • XML Syntax
      • If "filename.html" fails the XML syntax check and mshcMigrate cannot fix the problem, we now rename "filename.html" to "filename.~removed~.html", and replace "filename.html" with a temporary file that details the syntax error.
      • We now fix tags that have an Attribute Name with no Attribute Value (since this wont merge).
        eg. <input type=checkbox checked />  changed to <input type=checkbox checked="checked" />
  • 30-Dec-2009, Build 30
    • Update the UI text.
    • .HHP migrate
      • When importing [MAP][ALIAS] mappings to F1 tags we add both the HelpContextID and the HelpLabel (so we add 2x F1 meta tags per document).
      • We automatically add a category meta tag to each file. This is the name of the .HHP file minus the path and file ext.
    • Made sure temporary files are escaped correctly.
    • Agent page
      • Now lists all API calls. You can test by entering a URL directly or by selecting parameters using the various parameters.
    • Help Library Data Store page now displays the full path to the selected package and to selected files within a package.
    • Main window now remembers it's size and position.
  • 03-Jan-2010, Build 31
    • New Batch mode. Command files with ext .mshcMigrate can be run (like a .BAT file). See Batch Mode
    • Fix open Help Library Store explorer - Now uses http:/// protocol instead of ms-xhelp:/// which does not work in Chrome.
    • Update command: Does not modify files now. Now validates using .NET XMLRead class. Check box option allows you to skip the XML validation.
    • Application now associated with .chm .hhp .hxs .hxc .mshcMigrate .mshc .msha
  • 11-Jan-2010, Build 32/33
    • Migrate Link Options - Now has...
      • "Convert Links" checkbox to convert <a> links to <a href="ms-xhelp:///?Id=xxxx">.
      • "Expand Paths" checkbox expands paths relative to the root for <img> <link> and <script> paths.
        • This is required at the moment but MS may still fix the path bug before release.
    • Fixed: Typo - The test batch file should have had a .mshcMigrate file ext not .mshcSettings.
    • Fixed: Convert Link & Expand Path code... Some bugs fixed where tags were skipped and changes made were not counted.
    • Fixed: Fix format problem in temporary files.
    • Fixed: If TOC does not have single root node we add one. The node caption is now the name of the help file (if H2-PluginTitle is not set).
    • Added Manifest file options to Options page & Batch file. 
      • Option to create a .msha manifest when the help file is created or updated. 
      • Options page now has Manifest Vendor\Product\Bookmark fields for the Manifest file.
      • Manifest template file "helpcontentsetup.msha_TEMPLATE" lives in the mshcMigrate.exe folder.
      • A batch file can now contain a .msha manifest file.
    • Build 33 is a quick update to fix problem date format.
  • 11/01/2010, Build 34
    • More flexible Update command options (see dropdown on the Update page).
  • 04-Feb-2010, Build 35
    • New Migrate options: Specify a category tag prefix & an F1 keyword tag prefix.
    • New: Extra dots found in output filenames (these cause problems in Help Viewer 1.0) are replaces with _
    • New: Now catches <title>xxx <tag> xxx</title> type syntax errors.
    • Fix: The Update command [Check, Fix & Recompile] was not saving the update HTML to disk.
    • Fix some escaping code -- '<xx>' should be escaped as '&#60;xxx&#62;' but was being escaped as '&#60;xxx&#60;'
    • Tweak the Update command. Level 0 = Zip only. Level 1 = Report problems and Zip. Level 2 = Report, Fix and Zip.
    • Drag & drop files & folders to populate fields. On the Migrate page you can now drop a folder onto either field.
    • Update help tips.
  • 10-Feb-2010, Build 36
    • Fix: When reading/write Unicode UTF16 files sometime a trailing junk character was written to the file.
  • 24-Feb-2010, Build 38
    • Now compatible with Windows 64Bit Operating System.
  • 06-Mar-2010, Build 39
    • No longer Beta. -> now
    • Various cleanups on the HLM page
      • Added Run as administrator checkbox to HLM launch (HLM installs need to be elevated).
      • Now displays HLM running status and Exit code - very handy for silent install and uninstall.
    • Help Library Agent / API page 
      • Start Agent now checks for Online mode (Agent wont start in Online mode)
    • Migrate
      • Now allows XML's 5 standard entities &amp; &gt; &lt; &quot; &apos; - Previously we converted these blindly to &#nnn; codes.
      • Now handles wild cards (eg. HTML\*.*) in the Help 2.x .HxF file list.  No more error popup.
      • Now ignore ~removed~ files if found in the source folder.
    • Help Library Store page now has decompile command. Allows you to unzip any of the store packages.
  • 08-Mar-2010, Build 40
    • Fix: Help Viewer 1.0 forces a line break immediately after <script ..></script> statement. MS HC 1.0 seems to ignore other statements on the same line.
  • 09-Mar-2010, Build 41
    • Fix: Make sure strings in the temp report file do no have low ASCII char as these can upset the XML parser.
  • 14-Mar-2010, Build 42
    • Remove JSON API output format since no longer reported for release 1.0.
    • API page now compatible with new LCTP4 release
      New URL format:<Port>/help/<session>-<AgentProcessID>/
  • 26-Mar-2010, Build 44
    • See also blog post: mshcMigrate Build 43
    • Fixed bug left in b43 where TOC/Index files in a HxS migrate were not processed.
    • Fixed: Option popup (Shift+Click Migrate btn) would not show in some situations.
    • Added VS default languages to Locale drop down.
    • New: Added Export button to Options page - Exports migrate\update settings to a .mshcMigrate batch file.
  • 31-Mar-2010, Build 45
    • For HxS & HxC migrate we now also look for content files in the HxT file. Previously we only looked in the HxF include file.
  • 1-Apr-2010, Build 46\47
    • Fix Event log page: Viewer sometimes did not detect the latest Application events. No caches all changes.
    • Added filters to Event log page. Can now view all Help events (including events from HelpLibAgent.exe and Microsoft.Help.DLL code).
    • Viewer test links now check if Online or Offline mode. Since ID URLs only run in Offline mode.
    • Fix manual update check message. Would often announce that an old version was available. Also display new version info in the About tab.
  • 10-Apr-2010, Build 49
    • New Link to view the selected catalog in H3Viewer.
    • Event log moved to new location in navigation tree.
  • 10-Apr-2010, Build 50
    • KeepH3HeaderTags Option - Now allows you to keep All existing H3 tags including TocParent and TocOrder.
      So if existing TocParent and TocOrder tags are found in a topic we now ignore any TOC info imported from the TOC file (for that topic file)..
    • Fix: While tweaking the KeepH3HeaderTags code we found an off-by-one error. May have caused duplicate or missed an existing H3 tag.
  • 14-Apr-2010, Build 51
    • Better detection of Unicode files that don't use a BOM
  • 25-Apr-2010, Build 52
    • Remove /install switch. No longer required in RTM. /sourceMedia is enough to define an install.
    • HLM info bar color. We now color code to HLM ExitCode (Yellow=HLM running; Green for ExitCode=0; Red for ExitCode <> 0).
    • Options: "Keep H3 tags" and "SelfBranded" now default value = TRUE. Since SelfBranded=false is almost useless to the majority of 3rd party companies. And to keep existing H3 tags found in the source topics is OK - Since H3 tags only exist because they were added on purpose (down side is it takes longer to pre-scan files for existing tags).
    • Added new Option "Include h3m.js Fix Script". When checked we add h3m.js to the end of each topic file to fix bookmarks (see help).
    • The Options "Defaults" button no longer resets the Vendor\Product\Bookname fields.
    • Added Most Recently Used lists to several main fields.
    • Added icons to the mshcMigrate nav bar.
  • 26-Apr-2010, Build 53
    • Fix UTF-8 file detection (for no BOM found). This problem was stopping .mshc ZIP files opening correctly in the Help Library Store page.
  • 30-Apr-2010, Build 54
    • Tweak hints and layout.
    • Event Log page
      • Can now set how many days to view (default = last 3 days).
      • Can now multi-select and copy log lines.
      • Added Ctrl+A (Select All) and Ctrl+C (Copy) to context menu.
    • Bump up expiry date - (No Expiry check if FAR or mshcMigrate License found).
    • Added more parameters to Help Library Manager page.
  • 09-May-2010, Build 55-65
  • 19-May-2010, Build 57
    • Log: Reset log number in tab when Log view is changed. Added wait cursor.
    • Log: Now shows only the days log events by default. Debug can fill the log up very quickly.
    • For sandcastle: CSS links like "ms-help://Hx/HxRuntime/HxLink.css" reduced to "HxLink.css"
    • Fix: <MSHelp:Attr Name="DocSet" Value="xx"></MSHelp:Attr>
      was being closed <.. /> even though explicitly followed by a closed tag.
  • 21-May-2010, Build 58
    • Update h3m.js script file.
      • Fixed: If current doc url has a bookmark the bookmark still opened a new window in IE.
      • New JS global: h3m_docPackagePath contains path to current package.
    • Migrate changes around h3m.js script insertion...
      • Now inserts <script type="text/javascript" src="h3m.js"></script>
        into topic header before </head>. So that global vars can be available to other script.
      • Now inserts <script type="text/javascript"><!-- h3m_fix(); --></script>
        into body before </body>. h3m_fix() fixes all links and bookmark.
  • 21-May-2010, Build 59
    • Updated h3m.js -- Added new global string vars. These are only set in the MS HV environment.
      • var h3m_docPackagePath = '';      
           // eg. Test.mshc;/
      • var h3m_docPackageShortPath = '';  // eg. Test.mshc;/
      • var h3m_docProtocol = '';                 // eg.
    • New <img> Notes and using the h3m.js var h3m_docPackageShortPath
  • 9-July-2010, Build 61
    • Fixed problems with prcessing very long paths (Windows likes < 256 char names).
    • New batch command CopyTo= & DeleteAfterCopy=  -- See mshcMigrate Build 61
    • Fix: Help Library Store page - Treeview now displays Unicode chars correctly.
  • 19-April-2011, Version 1.1 Build 62
    • Release addresses issues with User Interface controls sometimes not repainting correctly under Vista and Windows 7. Code generation has not been touched.
  • 29-May-2011, Version 1.1 Build 64
    • We now suppress <meta name="keywords" content="xxxxx” /> tags during migrate since these are seen by Help Viewer merge as Help 3 keywords and the multiple commas can confuse the viewer.
  • 06-June-2011, Version 1.1 Build 65
    • Fix: .HxK Index popup items would not migrate properly if <head> tag had attributes.
  • 13-June-2011, Version 1.1 Build 66
    • Fix: .HxK Index popup items (disambiguation) is now fully supported. Formally popup items were not migrated.
  • 30-Aug-2011, Version 1.1 Build 67
    • Fix: Correct Eventlog formatting (line feeds weren't always showing).
    • Fix: Add more MSDN language codes to options dropdown. Correct Japanese jp-jp -> ja-jp.
  • 28-Jul-2012, Version 1.1 Build 68
    • New: Added FastMM memory management. 
      Normally a Win32 app can access 2 GB ram. The app can now access 3GB (32 bit OS) and 4 GB (64 bit OS) if the memory is available.
  • 14/03/2013, Version 2.0 build 70
    • Added new option to add HV2 meta tag 
      <meta name="Microsoft.Help.DisplayVersion" content="version text" /> to each topic.
      This text is displayed with each topic in the viewer search results.
    • When creating xxx.mshc we create corresponding install manifest 'helpcontentsetup.msha' (compatible with HV1+) and now also 'xxx.msha' which is compatible with HV2+
    • Changed Option "Category Prefix" - usually this creates a category tag in every topic file "UserCatText + PackageName". Now if you put a # before the text you now get just "UserCatText"
      Also updated tool tip help.
    • The HH and H2 index migration now creates the same index output (previously HH was slightly different than H2).
  • 20/11/2014, Version 2.0 build 72
    • Vertical scroll bar now appear on options page when page is reduced in size.
  • 23/11/2014, Version 2.0 build 73
    • In some cases choosing Options > Non-English locale results always in local = "en-us".
      Now correctly sets file header locales as reflected in options page "Default locale".
  • 11-Dec-2017, Version 2.0 build 75
    • Fix: In certain conditions a stray tag is left in a HTML file and the file is marked as removed. This fix should now produce accurate migrations of most Microsoft HxS files.