.Net Runtime Library for Delphi History

This page lists the functionality added in each version of .Net Runtime Library for Delphi. To view the full changelog including bug fixes, consult the .Net Runtime Library for Delphi revision history.

New features in .Net Runtime Library for Delphi 6.0.8

The current build is from 31-May-2024

  • Allow multiple versions of the product executables to run on the same machine.

.Net DLL/WSDL Import Utility

  • Prevents importing local methods.
  • Fixed duplicate enum names generated for different enum types.
  • Imports generic delegate types where the type parameter is a delegate type.

The previous build is from 08-January-2024

  • Supports Delphi 12 Athens.
  • Solved some bugs and made some stability improvements.

.Net DLL/WSDL Import Utility

  • Imports properties and fields with generic anonymous delegate types as methods.
  • Returns proper Nullable decimal type.
  • Imports 2 or more dimensional array types.
  • Imports default values for method parameters.
  • Creates default constructor for struct types.

New features in .Net Runtime Library for Delphi 6.0.7

The current build is from 03-April-2023

  • Fixed method not found exception thrown when calling 2 methods of the same name with one as a generic method.
  • Stability and performance improvements.

.Net DLL/WSDL Import Utility

  • Generates fields or properties which returns C# Action<> or Func<> delegates.
  • Fixed Select All button functionality on the ".Net Types" page.
  • Change default value of ExcludeInheritedTypeMethods property on "Choose .Net Assemblies" page from false to true.
  • Fixed duplicate enum names generated for different enum types.
  • Generates generic types with only type names as identifiers.
  • Optimised Delphi codes generated by the utility.

The current build is from 22-September-2021

  • Supports Delphi 11 Alexandria.
  • Fixed WSDL load assembly error due to default and unsecured security protocol.
  • Fixed error when converting UInt32 to a .Net Color in Delphi.

.Net DLL/WSDL Import Utility

  • Generates return type event handlers that are compatible with the standard stdcall event handler type.
  • Generates all enumeration types in an imported assembly.
  • Generates all methods in a type including the base methods in an imported assembly

The previous build is from 01-April-2021

  • Resolve error with .Net static object callbacks into Delphi generic anonymous events.
  • Improve library dependency search when loading netstandard assembly and it dependencies.
  • Fixed anonymous callbacks which fires more than once.

.Net DLL/WSDL Import Utility

  • Resolve issues related to the Assembly dependency tab.
  • Provides option to exclude unicode characters as type names when generating Delphi classes.

The previous build is from 01-February-2021

  • Support Multi-threading.
  • Added TClrAssemblyDependencyLoader class for specifying dependent assembly directories (When loading assemblies, any missing dependent assemblies will be searched in these specified directories).
  • Import process options are now stored in the generated files.
  • Added a callback manager class for converting method callbacks in .Net to it equivalents in Delphi and vice-versa. For Example; .Net Action<>, Func<> or any callback delegates can be converted to it equivalents in Delphi anonymous method types like TProc<>, TFunc<> etc.
  • Fixed error when converting .Net bitwise enum in methods to Delphi and vice-versa.
  • Stability and Usability improvements.
  • Product Edition Update: Enterprise Edition has been changed to Framework Edition.
  • Compatible with Delphi 10.4 Sydney.
  • Fixed error converting array to GenericIList or GenericList.
  • Fixed TClrObject constructor error when creating instance with variant type value as parameter.
  • Resolve Delphi XE compatibility issues.
  • Resolve Delphi 2010 compatibility issues.
  • Support for .Net Standard 2.1.
  • Support for .Net Framework 4.6.1.
  • Fixed E2266 error: "Only one of a set of overloaded methods can be published".
  • Fixed error when converting UInt32 to a .Net Color in Delphi.
  • Allows conversion from .Net System.Object[] array to _GenericList type.
  • Improve product licensing and subscription process.

.Net DLL/WSDL Import Utility

  • Fixed error when importing .Net class with method and event having the same name.
  • Fixed error when generating class with multiple indexer properties.
  • Converts generic Action and Func Delegates to it equivalent callbacks in Delphi instead of generating _GenericAction and _GenericFunc interfaces.
  • Added new load page to allow a user to specify the directories of the dependent assemblies of the assembly to import.
  • Fixed static methods not generated when importing .Net libraries.
  • Fixed error in generated methods with var/out parameters which is of type enum.
  • Converts nullable types to it equivalent in Delphi (Example: int? will be converted to NullableInt32).
  • Converts generic list of type decimal to a _GenericList instead of IList<_decimal> to prevent type cast error.
  • Generates all indexed properties for classes with indexers.

New features in .Net Runtime Library for Delphi 6.0.6

The current build is from 08-July-2019

  • Added OnAssemblyLoad, OnAssemblyResolve, OnProcessExit, OnResourceResolve and OnTypeResolve events to the TClrAppDomain class.
    The OnAssemblyLoad event occurs when a .Net assembly is loaded.
    The OnAssemblyResolve event occurs when the resolution of a .Net assembly fails.
    The OnProcessExit event occurs occurs when the default application domain's parent process exits.
    The OnResourceResolve event occurs when the resolution of a resource fails because the resource is not a valid linked/embedded resource in the assembly.
    The OnTypeResolve event occurs when the resolution of a type fails.
  • Added UnsafeLoadFrom method to TClrAssembly class which will allow you to load any .net dll downloaded from the web, which is marked as blocked by the operating system.
  • Resolved Product License Validation and Registration issues.
  • Fixed "Access Violation Exception" when accessing a generated method or property which returns an array of object as interface.
  • Supports Delphi 10.3 Rio.
  • Fixed "Could not convert variant of type (Unknown) into type (OleStr) error" from a method that returns an array in a class generated by the Import Utility.
  • Fixed "access violation error" from a method that returns an array in a class generated by the Import Utility.
  • Fixed "Unable to wrap object of type 'System.Collections.Generic.List`1 + Enumerator[System.String]' with type 'CNClrLibrary.Collections.IEnumerator' error" when converting .Net generic list to a Delphi generic list.
  • Fixed bug in host container when hosting .Net WPF controls in Delphi.
  • Win64 Apps using the Runtime Library no longer requires borlndmm.dll when deploying app.
  • Usability improvements.

.Net DLL/WSDL Import Utility

  • Fixed error in the generated property Get method in a class if the return type is a clrlibrary interface array.
  • Fixed line too long error in the generated unit.
  • All IDictionary<,> type will be converted to GenericIDictionary instead of GenericDictionary to prevent access violation when accessing a property or method whose return type inherits from IDictionary<,> and not Dictionary<,> type.
  • Added another load option called UnsafeLoadFrom option which can be used to load a local assembly that the operating system has flagged as having been loaded from the Web (for example, a temporary file that was downloaded from the Internet or intranet).
  • Support 64bit .Net DLL (Can load and import any 64bit .Net assemblies).
  • Fixed issues with generated array interface where the base interface is declared as interfaceIClrArray instead of interface(IClrArray).
  • Fixed issues with generated class where the class method parameters have the same name but with different CASES.
    (Note: Delphi method parameter names are not CASE SENSITIVE whereas C# method parameter names are.)
  • Include Guid in the generated interfaces to allow generic casting between the generated interfaces and its inherited classes.
  • Eventhandler is generated with sender argument as TClrBaseObject type instead of IClrBaseObject interface to prevent access violation.
  • Allows multiple selection and loading of WSDL source files. This is required to prevent parameter error in Wsdl if other dependent wsdl files cannot be loaded.
  • Stability and performance improvements.

New features in .Net Runtime Library for Delphi 6.0.5

  • Added Cast methods (AsType<>, Cast<>, IsType<> etc) in TClrBaseObject for easy casting between inherited .Net types in Delphi.
  • Fix error triggered when converting .Net object to it base generic type from Delphi.
  • No support for Delphi Codegear 2009.

.Net DLL/WSDL Import Utility

  • Removed Guid Strings from the generated interfaces (Not required).
  • Fixed error when converting some .Net generic types to Delphi.
  • Improved performance.
  • Optimised Delphi codes generated by the utility.
  • Fix WSDL load error by modifying the WSDL engine to load any WSDL documents and generate Delphi classes from the loaded wsdl types.
  • The utility generates an interface unit from the types of the imported assemblies.
    • These interfaces are inherited by the classes also generated by the utility.
    • The purpose of introducing the interface is to fix memory issues in the generated pas files by allowing Delphi to free objects automatically when the object is out of scope.
    • Filename: xxxxxxxx.Intf.pas (xxxxxxxx is the full name of the .Net Assembly imported).
  • Implement Delphi generic nullable class (Nullable<>) in CNClrLib.Generic.Helper which can be used to convert between .Net and Delphi Generic Nullable types.
  • Fixed .Net type properties and fields which returns generic list or dictionary and not visible on the import .Net Type list.
  • Some unit pas files generated by the utility have changed:
    • xxxxxxxxConsts.pas unit is changed to xxxxxxxxx.Consts.pas
    • xxxxxxxxEnums.pas unit is changed to xxxxxxxxx.Enums.pas

New features in .Net Runtime Library for Delphi 6.0.4

  • .Net DLL/WSDL Import Utility - Optimised Delphi codes generated by the utility.
  • .Net DLL/WSDL Import Utility - Fixed reflection type load exception when generating delphi codes from GAC Asemblies.
  • Fixed error triggered by invoking methods with generic parameters.
  • Register special key events in TClrContainer which allows hosted .Net Controls use tab, up arrow, down arrow, left arrow, right arrow etc keys in Delphi.

New features in .Net Runtime Library for Delphi 6.0.3

  • Optimised Delphi codes generated by the .Net DLL/WSDL Import Utility.
  • Introduced a new method called AsType in TClrBaseObject class for casting .Net derived class to base class in Delphi.
  • Introduced a new unit called CNClrLib.Generic.Helper which contains helper class methods for converting .Net generic lists or dictionaries to Delphi generic List (TObjectList<>) or dictionary (TObjectDictionary<,>) and vice-versa.

New features in .Net Runtime Library for Delphi 6.0.2

  • Fixed "Object not set to an instance" error if a nil parameter is passed to TClrBaseObject constructor.
  • Modified TClrBaseObject class to prevent the following error "This type has a ComVisible(false) parent in its hierarchy, therefore QueryInterface calls for IDispatch or class interfaces are disallowed."
  • .Net Assembly/WSDL Import Tools: Delphi Code generator engine modified to produce clean and optimised delphi codes.

New features in .Net Runtime Library for Delphi 6.0.1

  • Introduced a new class for handling event source notification in the host unit.
  • Introduced a new wrapper class for static fields, methods and properties of System.Type in the host unit.
  • Changed any reference of TClrActivator in the host unit to TDispatchActivator Class.
  • Added extra methods to TDispatchActivator Class.
  • .Net Assembly/WSDL Import Tools: Fixed Object reference not set to an instance of an object error when generating Delphi Codes.
  • .Net Assembly/WSDL Import Tools: Fixed E2003 Undeclared identifier: 'IList' error in the generated Delphi Units. IList is changed to _IList.

New features in .Net Runtime Library for Delphi 6.0.0

  • Fixed bug with creating an instance of the TClrObjectArray or TClrArray Class
  • Fixed bugs in .Net Assembly/WSDL Import Tools to generate Delphi codes from .Net assemblies/WSDL without compiler errors.
  • Changed return type of the methods for loading .net assemblies in TClrAssembly and TClrAppDomain Classes from TClrAssembly to _Assembly interface in order to prevent possible memory leaks if the user forgets to free the loaded .net assemblies.
  • Fixed "Constructor on type 'CNClrLibrary.Security.Cryptography.Cryptostream' not found" error
  • Implemented mscorlib types as part of the runtime library
  • Added new classes and improve the existing classes in the host class library
  • Support .Net Framework 4.5.2 or Higher
  • Support Delphi 2009 or Higher
  • Added .Net Assembly/WSDL Import Tools
  • Usability improvements
  • Stability and performance improvements

New features in .Net Runtime Library for Delphi 5.0

  • Major changes to the Runtime Library
  • Support 64bit Delphi application

New features in .Net Runtime Library for Delphi 4.0

  • Support .Net Framework 4.5 or Higher
  • Fixed bugs in CryptoStream type interface to avoid the error ""EOleException: Constructor on type 'CNCorLib.Sys.Security.Cryptography.CryptoStream' not found"
  • Fixed bugs in Runtime Host class to prevent "System.NullReferenceException"
  • Fixed bugs in Mscorlib type interfaces
  • Added Delphi Framework Class Library
  • Support .Net Framework 4.0 or Higher
  • Support Delphi 7 and Higher

New features in .Net Runtime Library for Delphi 2.0

  • Fixed bugs with I/O operations
  • Usability improvements
  • Stability and performance improvements

New features in .Net Runtime Library for Delphi 1.0

  • First release of .Net Runtime Library
  • Delphi 7 is supported
  • Support .Net Framework 3.0