Improved Code Porting of XML and Strings in csPorter for C++ 18.10

We are pleased to announce new monthly release of csPorter for C++ 18.10. This is a maintenance release that contains number of improvements and bug fixes. Some important fixes are XML and Strings related issues that further improves the overall stability and usability of csPorter for C++. Please check the release notes in order to get an idea about what is new and what has been enhanced or fixed with this revision of csPorter for C++.

Improvements and Fixes

These are the new features included in this regular monthly release:

  • Null reference error fixed when accessing namespace of XmlAttribute without any namespace set
  • Fixed runtime error when setting InnerText for XmlNode with no parent XmlDocument
  • Added missing overloads of XslCompiledTransform::Tranform() methods
  • Behavior of XmlTextWriter class now matches such of .Net class regarding spaces and EOL symbols
  • Fixed runtime error when assigning A object only referenced by B object to SmartPtr holding last reference to B
  • Several potential memory leaks related to WeakPtr usage are fixed
  • Support of several System::ComponentModel classes was added. Related API is fixed
  • Issue with XmlTextReader::ReadString() invalidating reader if element is empty is fixed
  • Incorrect work of Convert::ToString() function with DateTime type is fixed
  • Translation of concatenation between string and enum types is fixed
  • Detection of String vs bool overload is switched to fully automatic mode. CppForceStringParam attribute is still available e. g. for String vs TypeInfo cases
  • Translation of surrogate pairs inside string literals is fixed
  • Errors detected during Xml files parsing no longer go into stderr by default. To change this behavior, use ASPOSE_LIBXML2_ERROR_OUTPUT_CHANNEL system variable with possible values of ‘stderr’, ‘stdout’, ‘debug’, ‘null’ or ‘file:<filename>’
  • Platform checks are improved in Nuget package
  • Fixed porter not taking config into account when translating System.Char references
  • 64-bit integer to string conversions behavior was synchronized with .NET when it comes to trailing and leading spaces. Also, performance is improved
  • Shorter, more convenient directory name is provided inside release package

Public API Changes

We have made following breaking API changes in csPorter for C++ 18.10 version:

  • Several previously unsupported overloads of System::Xml::Xsl::XslCompiledTransform::Transform() method are added
  • Support of the following classes is added:
    • System::ComponentModel::AsyncCompletedEventArgs
    • System::ComponentClass::BackgroundWorker
    • System::ComponentWorker::ProgressChangedEventArgs
    • System::ComponentModel::RunWorkerCompletedEventArgs
    • System::Reflection::TargetInvocationException
  • Support of System::Threading::WaitHandle::WaitOne(const System::TimeSpan &timeout) method is added
  • char16_t_array type renamed to system_char_array. const_char16_t_array type renamed to const_system_char_array
  • System::Char::IsAsciiWhiteSpace() method is added


  • Product Home Page– Gives you detailed overview about the csPorter for C++
  • Online documentation– Complete help documentation.
  • Download– Download latest release of the csPorter for C++
  • API Reference Guide– Details of the namespaces and classes of the API linked with the ported C++ Code
  • GitHub Examples– Provides ready to port Example Projects
  • Support Forum– Write to us if you have any query or inquiry about the csPorter for C++
  • Blog– Do not limit yourself, enable Blog subscription and keep yourself updated with the latest news on the csPorter for C++
  • Video Tutorials– Watch csPorter for C++ video tutorials

Start a Free Trial Today

Start a free trial today – all you need is to sign up with the csPorter. Once you have signed up, you are ready to try the csPorter for C++ and port your C# projects to C++.

You can easily download the csPorter for C++ Application for evaluation. The evaluation download is the same as the purchased download.  The evaluation version (without a license specified) provides full product functionality, but it limits the input C# project structure.

If you want to test the csPorter for C++ Application without the evaluation version limitations, you can also request a 30-days Temporary License. Please refer to How to get a Temporary License?