Skip to content

Releases: Azure/azure-iot-sdk-csharp

Microsoft Azure IoT Hub SDK for .NET LTS Release 2020-08-19

19 Aug 18:10
Compare
Choose a tag to compare

Microsoft.Azure.Devices.Client.1.28.0

  • Implement model Id support over Amqp.
  • Add support for sending digital twin telemetry from components.
  • Add additional logging, descriptions and code cleanup in Mqtt layer.
  • Update doc for exception handling over amqp, add connection status change event descriptions.

#Bug fixes:

  • Fix issue where SemaphoreFullException was thrown unexpectedly (#1502)
  • Implement correct actions for each ConnectReturnCode returned (#1496)
  • Fix mqtt layer to monitor ping response (#1409)

The following nuget versions have been previously released, and are being marked as LTS:

  • Microsoft.Azure.Devices.1.22.0
  • Microsoft.Azure.Devices.Shared.1.20.1
  • Microsoft.Azure.Devices.Provisioning.Client.1.6.0
  • Microsoft.Azure.Devices.Provisioning.Transport.Amqp.1.3.1
  • Microsoft.Azure.Devices.Provisioning.Transport.Http.1.2.4
  • Microsoft.Azure.Devices.Provisioning.Transport.Mqtt.1.3.0
  • Microsoft.Azure.Devices.Provisioning.Security.Tpm.1.2.3
  • Microsoft.Azure.Devices.Provisioning.Service.1.6.3

Microsoft Azure IoT Hub SDK for .NET Public-Preview Release 2020-7-14

15 Jul 06:51
Compare
Choose a tag to compare

Microsoft.Azure.Devices.Shared.1.25.1-preview-001

  • Add support for retrieving ModelId on Twin object.
  • SDK updates from master branch:
    • Add support for symmetric key based authentication support.
    • Created a new resource TlsVersions to specify the TLS information for the project.

Microsoft.Azure.Devices.Client.1.29.1-preview-002

  • Updated reference to Microsoft.Azure.Devices.Shared preview nuget.

Microsoft.Azure.Devices.1.27.1-preview-002

  • Updated reference to Microsoft.Azure.Devices.Shared preview nuget.

Microsoft.Azure.Devices.Provisioning.Client.1.16.0-preview-001

  • Updated reference to Microsoft.Azure.Devices.Shared preview nuget.
    NOTE: First preview release of this package

Microsoft.Azure.Devices.Provisioning.Transport.Amqp.1.13.0-preview-001

  • Updated reference to Microsoft.Azure.Devices.Shared preview nuget.
    NOTE: First preview release of this package

Microsoft.Azure.Devices.Provisioning.Transport.Http.1.12.0-preview-001

  • Updated reference to Microsoft.Azure.Devices.Shared preview nuget.
    NOTE: First preview release of this package

Microsoft.Azure.Devices.Provisioning.Transport.Mqtt.1.13.0-preview-001

  • Updated reference to Microsoft.Azure.Devices.Shared preview nuget.
    NOTE: First preview release of this package

Microsoft.Azure.Devices.Provisioning.Security.Tpm.1.12.0-preview-001

  • Updated reference to Microsoft.Azure.Devices.Shared preview nuget.
    NOTE: First preview release of this package

Microsoft.Azure.Devices.Provisioning.Service.1.16.0-preview-001

  • Updated reference to Microsoft.Azure.Devices.Shared preview nuget.
    NOTE: First preview release of this package

Microsoft Azure IoT Hub SDK for .NET Public-Preview Release 2020-7-13

13 Jul 19:44
Compare
Choose a tag to compare

Microsoft.Azure.Devices.Client.1.29.1-preview-001

  • Rename DeviceStreamRequest.Url to DeviceStreamRequest.Uri, since it represents a Uri.
    • NOTE: This is a breaking change for DeviceStreaming APIs.
  • SDK fixes from master branch:
    • Fix issue where MQTT ReceiveAsync with cancellation token always returns null.
    • Fix issue where MQTT packet id becomes 0 on 32kth messages sent, which caused MQTT connection to drop.
    • Fix issue where AMQP SendEventBatchAsync always throws InvalidOperationException.
    • Fix issue where AMQP connection throws ObjectDisposedException when OpenAsync fails to open sender link.
    • Fix issue where AMQP SendTwinPatchAsync with cancellation token doesn’t cancel after cancellation token is cancelled.
    • Revert to throw TimeoutException if operation times out instead of IotHubCommunicationException.
    • Revert to throw OperationCancelledException if operation is cancelled instead of IotHubCommunicationException.
    • Fix connection string parser to allow special characters such as semicolon.
    • Fix a missing await for async task in MQTT which could cause race condition to the connection.
    • Add clarification to connection status callback documentation for HTTP.
    • Add clarification to device operation timeout documentation.
    • Upgraded Newtonsoft.Json dependency to 12.0.3
    • Fixed twin parsing to use DateTimeOffset instead of DateTime (#1122)
    • Fixed Mqtt adaptor not always cleaning up while closing (PR #1181)
    • Fixed MqttTransportHandler not handling ConnectExceptions correctly (#648)
    • Fixed the SDK not throwing an exception when the mqtt topic name was too large to publish (#1197)
    • Added API to specify client side AMQP heartbeat interval.
    • Centralize TLS version choice, prefer None where possible.
    • Added API to enable/disable remote SSL certificate revocation check.
    • Exposed the default transport settings values.
    • Fixed null reference exception when device sets reported property but does not specify a desired property callback with AMPQ.
    • Fix issue where ModuleClient configured with Mqtt_Tcp_Only fails to reconnect after edgeHub restart then never recovers (#1239)
    • When using AMQP, application properties with a null value will now be sent to the hub, matching MQTT/HTTP behavior (#919)
    • Improve AMQP reconnection resiliency
    • SDK will now retry on more error codes over AMQP. For more details, see amqp transport exceptions.
      • amqp:internal-error
      • amqp:link :transfer-limit-exceeded
      • amqp:resource-locked
    • Dropped support for .NET Standard 1.3, and added support for .NET Framework 4.7.2.
    • Improved XML comments
    • MqttTransportSettings.CertificateRevocationCheck and AmqpTransportSettings.CertificateRevocationCheck are now linked with TlsVersions.Instance.CertificateRevocationCheck property.
    • Made Message class partially cloneable - to be able to copy system properties to a new instance (#1923). See Message.CloneWithBody method.
    • Updated System.Net.Http package from 4.3.3 to 4.3.4 to resolve a security vulnerability in the package.
    • Add modelId support for PnP summer refresh
    • Add support for .NET Standard 2.1
    • Add a way for nested Edge to pass authentication chain to IoTHub
    • Add twin array support and update to latest service API version
    • Enable RemoteCertificateValidationCallback for websocket connections to allow users to validate remote certificates
    • Fix Mqtt C2D subscription message to set QoS of 1
    • Fix comments on twin/methods and create
    • Fix issue to require explicit subscribe to desired properties in latest Service API version
    • Fix for each subscribe request declare its topic name on mqtt messages
    • Remove DNS lookup in mqtt stack when proxy is present
    • Don't dispose a message being returned
    • Dispose CancellationTokenSource being used internally in the library
    • Deprecate file upload APIs in favor of new, more granular APIs that allow users to use their own Azure storage SDK to do the actual upload

Microsoft.Azure.Devices.1.27.1-preview-001

  • Rename DeviceStreamResponse.Url to DeviceStreamResponse.Uri, since it represents a Uri.
    • NOTE: This is a breaking change for DeviceStreaming APIs.
  • SDK fixes from master branch:
    • Add modelId support for PnP summer refresh
    • Upgraded Newtonsoft.Json dependency to 12.0.3
    • Fix proxy handling on HTTP for requests with per-request timeout.
    • Centralize TLS version choice, prefer None where possible.
    • Fixed proxy handling for Http client.
    • IotHubClientWebSocket.ConnectAsync method now respects the SslProtocol value specified in TlsVersions.Instance.Preferred.
    • Dropped support for .NET Standard 1.3, and added support for .NET Framework 4.7.2.
    • Enables new security functionality to specify how hub should authenticate when working with a storage account when running import/export devices jobs.
      • New enum StorageAuthenticationType to specify key-based or identity-based authentication.
      • New property JobProperties.StorageAuthenticationType for use in import/export devices jobs.
      • Added two overloaded methods: RegistryManager.ImportDevicesAsync and RegistryManager.ExportDevicesAsync. The overloads take a JobProperties instance so the user can pass all required and any optional parameters.
      • Two factory methods to make it easier to call ImportDevicesAsync and ExportDevicesAsync, making it clear which properties are required and which are optional. They are JobProperties.CreateForInportJob and JobProperties.CreateForExportJob respectively.
      • Removed two unreferenced classes: ImportDevicesRequest and ExportDevicesRequest.
    • Reuse HttpClient instances (#1276), avoiding a known issue with HttpClient.Dispose() that can cause TCP socket exhaustion under heavy load.
    • Use latest Service API version that is available in all regions
    • Add Support for .NET Standard 2.1
    • Add twin array support
    • Update JobQuotaExceededException to include the associated http error reason
    • Code clean up in IotHubConnectionStringBuilder based on coding standards

Microsoft Azure IoT Hub SDK for .NET Release 2020-07-09

10 Jul 02:25
Compare
Choose a tag to compare

Microsoft.Azure.Devices.Client v1.27.0

  • Update Microsoft.Azure.Amqp version to 2.4.2.
  • Enable ModuleClient to set ClientOptions.
  • Update the device client to accept the ModelId as per new format.

#Bug fixes

  • Deprecate existing file upload APIs, add new ones at granular level (Get SAS uri from IoT Hub, upload to Azure Storage blob using IoT Hub provided credentials, and then notify IoT Hub that a file upload has completed) (#1037 , #1399).
  • Fix for retrieving all message system properties set by IoT Hub, over Http protocol, for cloud-to-device messages.

Microsoft.Azure.Devices v1.22.0

  • Update Microsoft.Azure.Amqp version to 2.4.2.

#Bug fixes

  • Updated code to set the correct exception message (#599).
  • Expose the exception code returned by the service, back to the calling application (#629).

Microsoft.Azure.Devices.Provisioning.Transport.Amqp v1.3.1

  • Update Microsoft.Azure.Amqp version to 2.4.2.

Microsoft.Azure.Devices.Provisioning.Transport.Http v1.2.4

#Bug fixes

  • Fix a bug where the provisioning client did not respect the retry-after header sent by service, for requests getting throttled. (#1042).

Microsoft Azure IoT Hub SDK for .NET Release 2020-05-06

11 Jun 00:32
Compare
Choose a tag to compare

Microsoft.Azure.Devices.Shared v1.20.1

  • Add Support for net standard 2.1

Microsoft.Azure.Devices.Client v1.26.0

  • Add Client Options to enable users to supply model id
  • Add Support for net standard 2.1
  • Add a way for nested Edge to pass authentication chain to IoTHub
  • Add twin array support and update to latest service API version
  • Updated reference to Microsoft.Azure.Devices.Shared nuget.

#Bug fixes

  • Enable RemoteCertificateValidationCallback for Websocket connections to allow users to validate remote certificates
  • Fix Mqtt C2D subscription message to set QoS of 1
  • Fix comments on twin/methods and create
  • Fix issue to require explicit subscribe to desired properties in latest Service API version
  • Fix for each subscribe request declare its topic name on mqtt messages
  • Remove DNS lookup in mqtt stack when proxy is present
  • Don't dispose a message being returned
  • Dispose CancellationTokenSource being used internally in the library

Microsoft.Azure.Devices v1.21.0

  • Use latest Service API version that is available in all regions
  • Add Support for net standard 2.1
  • Add twin array support
  • Updated reference to Microsoft.Azure.Devices.Shared nuget.

#Bug fixes

  • Update JobQuotaExceededException to include the associated http error reason
  • Code clean up in IotHubConnectionStringBuilder based on coding standards

Microsoft.Azure.Devices.Provisioning.Service v1.6.3

  • Add Support for net standard 2.1

Microsoft.Azure.Devices.Provisioning.Client v1.6.0

  • Add Support for net standard 2.1
  • Add RemoteCertificateValidationCallback to allow users to validate remote certs

#Bugs fixes

  • Dispose client web socket instance in mqtt transport handler

Microsoft.Azure.Devices.Provisioning.Transport.Amqp v1.3.0

  • Add Support for net standard 2.1
  • Add RemoteCertificateValidationCallback to allow users to validate remote certs

Microsoft.Azure.Devices.Provisioning.Transport.Mqtt v1.3.0

  • Add Support for net standard 2.1
  • Add RemoteCertificateValidationCallback to allow users to validate remote certs

Microsoft.Azure.Devices.Provisioning.Transport.Http v1.2.3

  • Add Support for net standard 2.1

Microsoft.Azure.Devices.Provisioning.Security.Tpm v1.2.3

  • Add Support for net standard 2.1

Microsoft Azure IoT Hub SDK for .NET Long Term Support Patch 2020-1-31

03 Apr 18:42
Compare
Choose a tag to compare

This release is a patch for the 2020-1-31 LTS release. It contains a fix for an HttpClient reuse issue.

Microsoft.Azure.Devices v1.18.5

  • Reuse HttpClient instances (#1276), avoiding a known issue with HttpClient.Dispose() that can cause TCP socket exhaustion under heavy load.

Microsoft Azure IoT Hub SDK for .NET Release 2020-03-31

03 Apr 20:55
e495b25
Compare
Choose a tag to compare

Microsoft.Azure.Devices.Shared v1.20.0

  • Give clients control over whether certificates are checked against the certificate authority revocation list or not for AMQP, HTTP, and MQTT for all clients. Set TlsVersions.Instance.CertificateRevocationCheck property to true to enable this feature.
  • Improved XML comments
  • Added more parameter validation in select methods for null, throwing ArgumentNullException.

Microsoft.Azure.Devices v1.20.1

  • Reuse HttpClient instances (#1276)
  • Updated reference to Microsoft.Azure.Devices.Shared nuget.

Microsoft.Azure.Devices.Client v1.25.0

  • Improved XML comments
  • MqttTransportSettings.CertificateRevocationCheck and AmqpTransportSettings.CertificateRevocationCheck are now linked with TlsVersions.Instance.CertificateRevocationCheck property.
  • Made Message class partially cloneable - to be able to copy system properties to a new instance (#1923). See Message.CloneWithBody method.
  • Updated System.Net.Http package from 4.3.3 to 4.3.4 to resolve a security vulneribility in the package.
  • Updated reference to Microsoft.Azure.Devices.Shared nuget.

Microsoft.Azure.Devices.Provisioning.Client v1.5.2

  • Updated reference to Microsoft.Azure.Devices.Shared nuget.

Microsoft.Azure.Devices.Provisioning.Service v1.6.2

  • Improved XML comments
  • Updated reference to Microsoft.Azure.Devices.Shared nuget.

Microsoft.Azure.Devices.Provisioning.Transport.Amqp v1.2.2

  • Improved XML comments
  • Added more parameter validation in select methods for null, throwing ArgumentNullException.
  • Updated reference to Microsoft.Azure.Devices.Shared nuget.

Microsoft.Azure.Devices.Provisioning.Transport.Mqtt v1.2.2

  • Improved XML comments
  • Added more parameter validation in select methods for null, throwing ArgumentNullException.
  • Updated reference to Microsoft.Azure.Devices.Shared nuget.

Microsoft.Azure.Devices.Provisioning.Transport.Http v1.2.2

  • Improved XML comments
  • Added more parameter validation in select methods for null, throwing ArgumentNullException.
  • Updated reference to Microsoft.Azure.Devices.Shared nuget.

Microsoft.Azure.Devices.Provisioning.Security.Tpm v1.2.2

  • Added more parameter validation in select methods for null, throwing ArgumentNullException.
  • Fixed resource leaks on dispose.
  • Updated reference to Microsoft.Azure.Devices.Shared nuget.

Microsoft Azure IoT Hub SDK for .NET Release 2020-3-13

13 Mar 19:27
8232011
Compare
Choose a tag to compare

Microsoft.Azure.Devices v1.20.0

  • Enables new security functionality to specify how hub should authenticate when working with a storage account when running import/export devices jobs. Initially, this feature has limited availability, starting with 3 public cloud Azure regions. For more information, see this documentation. Since it is not yet widely available, this functionality must be explicitly enabled by the user. See below (1) for details.
    • New enum StorageAuthenticationType to specify key-based or identity-based authentication.
    • New property JobProperties.StorageAuthenticationType for use in import/export devices jobs.
    • Added two overloaded methods: RegistryManager.ImportDevicesAsync and RegistryManager.ExportDevicesAsync. The overloads take a JobProperties instance so the user can pass all required and any optional parameters.
    • Two factory methods to make it easier to call ImportDevicesAsync and ExportDevicesAsync, making it clear which properties are required and which are optional. They are JobProperties.CreateForInportJob and JobProperties.CreateForExportJob respectively.
    • Removed two unreferenced classes: ImportDevicesRequest and ExportDevicesRequest.
  • IotHubClientWebSocket.ConnectAsync method now respects the SslProtocol value specified in TlsVersions.Instance.Preferred.
  • Dropped support for .NET Standard 1.3, and added .NET Framework 4.7.2.
  • Updated reference to Microsoft.Azure.Devices.Shared nuget.

(1) To enable this functionality, this version of the SDK will require setting an environment variable of EnableStorageIdentity to 1. Once this feature is widely available, another SDK version will be released with this requirement removed.

Microsoft.Azure.Devices.Shared v1.19.0

  • Dropped support for .NET Standard 1.3, and added .NET Framework 4.7.2.

Microsoft.Azure.Devices.Client v1.24.0

  • Dropped support for .NET Standard 1.3, and added .NET Framework 4.7.2.
  • Updated reference to Microsoft.Azure.Devices.Shared nuget.

Microsoft.Azure.Devices.Provisioning.Client v1.5.1

  • Updated reference to Microsoft.Azure.Devices.Shared nuget.

Microsoft.Azure.Devices.Provisioning.Service v1.6.1

  • Updated reference to Microsoft.Azure.Devices.Shared nuget.

Microsoft.Azure.Devices.Provisioning.Transport.Amqp v1.2.1

  • Updated reference to Microsoft.Azure.Devices.Shared nuget.

Microsoft.Azure.Devices.Provisioning.Transport.Mqtt v1.2.1

  • Updated reference to Microsoft.Azure.Devices.Shared nuget.

Microsoft.Azure.Devices.Provisioning.Transport.Http v1.2.1

  • Updated reference to Microsoft.Azure.Devices.Shared nuget.

Microsoft.Azure.Devices.Provisioning.Security.Tpm v1.2.1

  • Updated reference to Microsoft.Azure.Devices.Shared nuget.

Microsoft Azure IoT Hub SDK for .NET Release 2020-2-27

27 Feb 22:12
d5f9a57
Compare
Choose a tag to compare

Microsoft.Azure.Devices.Client v1.23.2

  • When using AMQP, application properties with a null value will now be sent to the hub, matching MQTT/HTTP behavior (#919)
  • Improve AMQP reconnection resiliency
  • SDK will now retry on more error codes over AMQP. For more details, see amqp transport exceptions.
    • amqp:internal-error
    • amqp:link :transfer-limit-exceeded
    • amqp:resource-locked

Microsoft Azure IoT Hub SDK for .NET Release 2020-2-18

19 Feb 23:59
49341e5
Compare
Choose a tag to compare

Microsoft.Azure.Devices.Client v1.23.1

  • ModuleClient configured with Mqtt_Tcp_Only fails to reconnect after edgeHub restart then never recovers (#1239)