Releases: Azure/azure-iot-sdk-csharp
Releases · Azure/azure-iot-sdk-csharp
Azure IoT SDK for .NET Preview Release 2020-9-21
Release notes:
Microsoft.Azure.Devices.Client.1.29.1-preview-003
SDK updates from master branch:
- Remove unreferenced exceptions and their mappings
DeviceAlreadyExistsExceptionDeviceDisabledExceptionIotHubNotFoundException
- 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:
SDK fixes from master branch:
- Fix issue where
SemaphoreFullExceptionwas thrown unexpectedly (#1502) - Implement correct actions for each
ConnectReturnCodereturned (#1496) - Fix mqtt layer to monitor ping response (#1409)
- Fix GetFileUploadSasUriAsync API when using certificate authentication methods (#1527)
Microsoft.Azure.Devices.1.27.1-preview-003
SDK updates from master branch:
- Expose the exception Code on the API surface- Addresses : (#629)
Microsoft.Azure.Devices.Provisioning.Service.1.16.0-preview-002
SDK updates from master branch:
- Add APIs to get device attestation mechanism
Microsoft Azure IoT Hub SDK for .NET Release 2020-9-17
Release notes:
Microsoft.Azure.Devices.Client.1.30.0
- Remove unreferenced exceptions and their mappings
- DeviceAlreadyExistsException
- DeviceDisabledException
- IotHubNotFoundException
Bug fixes:
- Fix GetFileUploadSasUriAsync API when using certificate authentication methods (#1527)
Note: The bump for device client is from 1.28.x -> 1.30.x because the 1.29.x version range is being currently used for the preview packages.
Microsoft.Azure.Devices.Provisioning.Service 1.7.0
- Add APIs to get device attestation mechanism
Microsoft Azure IoT Hub SDK for .NET LTS Release 2020-08-19
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
SemaphoreFullExceptionwas thrown unexpectedly (#1502) - Implement correct actions for each
ConnectReturnCodereturned (#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
Microsoft.Azure.Devices.Shared.1.25.1-preview-001
- Add support for retrieving
ModelIdonTwinobject. - SDK updates from
masterbranch:- Add support for symmetric key based authentication support.
- Created a new resource
TlsVersionsto specify the TLS information for the project.
Microsoft.Azure.Devices.Client.1.29.1-preview-002
- Updated reference to
Microsoft.Azure.Devices.Sharedpreview nuget.
Microsoft.Azure.Devices.1.27.1-preview-002
- Updated reference to
Microsoft.Azure.Devices.Sharedpreview nuget.
Microsoft.Azure.Devices.Provisioning.Client.1.16.0-preview-001
- Updated reference to
Microsoft.Azure.Devices.Sharedpreview 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.Sharedpreview 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.Sharedpreview 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.Sharedpreview 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.Sharedpreview nuget.
NOTE: First preview release of this package
Microsoft.Azure.Devices.Provisioning.Service.1.16.0-preview-001
- Updated reference to
Microsoft.Azure.Devices.Sharedpreview nuget.
NOTE: First preview release of this package
Microsoft Azure IoT Hub SDK for .NET Public-Preview Release 2020-7-13
Microsoft.Azure.Devices.Client.1.29.1-preview-001
- Rename
DeviceStreamRequest.UrltoDeviceStreamRequest.Uri, since it represents a Uri.- NOTE: This is a breaking change for
DeviceStreamingAPIs.
- NOTE: This is a breaking change for
- SDK fixes from
masterbranch:- Fix issue where MQTT
ReceiveAsyncwith 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
SendEventBatchAsyncalways throwsInvalidOperationException. - Fix issue where AMQP connection throws
ObjectDisposedExceptionwhenOpenAsyncfails to open sender link. - Fix issue where AMQP
SendTwinPatchAsyncwith cancellation token doesn’t cancel after cancellation token is cancelled. - Revert to throw
TimeoutExceptionif operation times out instead ofIotHubCommunicationException. - Revert to throw
OperationCancelledExceptionif operation is cancelled instead ofIotHubCommunicationException. - 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.Jsondependency to 12.0.3 - Fixed twin parsing to use
DateTimeOffsetinstead ofDateTime(#1122) - Fixed Mqtt adaptor not always cleaning up while closing (PR #1181)
- Fixed
MqttTransportHandlernot handlingConnectExceptionscorrectly (#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
ModuleClientconfigured withMqtt_Tcp_Onlyfails 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-erroramqp:link :transfer-limit-exceededamqp:resource-locked
- Dropped support for .NET Standard 1.3, and added support for .NET Framework 4.7.2.
- Improved XML comments
MqttTransportSettings.CertificateRevocationCheckandAmqpTransportSettings.CertificateRevocationCheckare now linked withTlsVersions.Instance.CertificateRevocationCheckproperty.- Made
Messageclass partially cloneable - to be able to copy system properties to a new instance (#1923). SeeMessage.CloneWithBodymethod. - Updated
System.Net.Httppackage 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
RemoteCertificateValidationCallbackfor 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
CancellationTokenSourcebeing 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
- Fix issue where MQTT
Microsoft.Azure.Devices.1.27.1-preview-001
- Rename
DeviceStreamResponse.UrltoDeviceStreamResponse.Uri, since it represents a Uri.- NOTE: This is a breaking change for
DeviceStreamingAPIs.
- NOTE: This is a breaking change for
- SDK fixes from
masterbranch:- Add modelId support for PnP summer refresh
- Upgraded
Newtonsoft.Jsondependency 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.ConnectAsyncmethod now respects theSslProtocolvalue specified inTlsVersions.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
StorageAuthenticationTypeto specify key-based or identity-based authentication. - New property
JobProperties.StorageAuthenticationTypefor use in import/export devices jobs. - Added two overloaded methods:
RegistryManager.ImportDevicesAsyncandRegistryManager.ExportDevicesAsync. The overloads take aJobPropertiesinstance so the user can pass all required and any optional parameters. - Two factory methods to make it easier to call
ImportDevicesAsyncandExportDevicesAsync, making it clear which properties are required and which are optional. They areJobProperties.CreateForInportJobandJobProperties.CreateForExportJobrespectively. - Removed two unreferenced classes:
ImportDevicesRequestandExportDevicesRequest.
- New enum
- Reuse
HttpClientinstances (#1276), avoiding a known issue withHttpClient.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
JobQuotaExceededExceptionto include the associated http error reason - Code clean up in
IotHubConnectionStringBuilderbased on coding standards
Microsoft Azure IoT Hub SDK for .NET Release 2020-07-09
Microsoft.Azure.Devices.Client v1.27.0
- Update
Microsoft.Azure.Amqpversion to2.4.2. - Enable
ModuleClientto setClientOptions. - Update the device client to accept the
ModelIdas 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.Amqpversion to2.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.Amqpversion to2.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-afterheader sent by service, for requests getting throttled. (#1042).
Microsoft Azure IoT Hub SDK for .NET Release 2020-05-06
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
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
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.CertificateRevocationCheckproperty 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.Sharednuget.
Microsoft.Azure.Devices.Client v1.25.0
- Improved XML comments
MqttTransportSettings.CertificateRevocationCheckandAmqpTransportSettings.CertificateRevocationCheckare now linked withTlsVersions.Instance.CertificateRevocationCheckproperty.- Made
Messageclass partially cloneable - to be able to copy system properties to a new instance (#1923). SeeMessage.CloneWithBodymethod. - 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.Sharednuget.
Microsoft.Azure.Devices.Provisioning.Client v1.5.2
- Updated reference to
Microsoft.Azure.Devices.Sharednuget.
Microsoft.Azure.Devices.Provisioning.Service v1.6.2
- Improved XML comments
- Updated reference to
Microsoft.Azure.Devices.Sharednuget.
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.Sharednuget.
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.Sharednuget.
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.Sharednuget.
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.Sharednuget.
Microsoft Azure IoT Hub SDK for .NET Release 2020-3-13
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
StorageAuthenticationTypeto specify key-based or identity-based authentication. - New property
JobProperties.StorageAuthenticationTypefor use in import/export devices jobs. - Added two overloaded methods:
RegistryManager.ImportDevicesAsyncandRegistryManager.ExportDevicesAsync. The overloads take aJobPropertiesinstance so the user can pass all required and any optional parameters. - Two factory methods to make it easier to call
ImportDevicesAsyncandExportDevicesAsync, making it clear which properties are required and which are optional. They areJobProperties.CreateForInportJobandJobProperties.CreateForExportJobrespectively. - Removed two unreferenced classes:
ImportDevicesRequestandExportDevicesRequest.
- New enum
IotHubClientWebSocket.ConnectAsyncmethod now respects theSslProtocolvalue specified inTlsVersions.Instance.Preferred.- Dropped support for .NET Standard 1.3, and added .NET Framework 4.7.2.
- Updated reference to
Microsoft.Azure.Devices.Sharednuget.
(1) To enable this functionality, this version of the SDK will require setting an environment variable of
EnableStorageIdentityto1. 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.Sharednuget.
Microsoft.Azure.Devices.Provisioning.Client v1.5.1
- Updated reference to
Microsoft.Azure.Devices.Sharednuget.
Microsoft.Azure.Devices.Provisioning.Service v1.6.1
- Updated reference to
Microsoft.Azure.Devices.Sharednuget.
Microsoft.Azure.Devices.Provisioning.Transport.Amqp v1.2.1
- Updated reference to
Microsoft.Azure.Devices.Sharednuget.
Microsoft.Azure.Devices.Provisioning.Transport.Mqtt v1.2.1
- Updated reference to
Microsoft.Azure.Devices.Sharednuget.
Microsoft.Azure.Devices.Provisioning.Transport.Http v1.2.1
- Updated reference to
Microsoft.Azure.Devices.Sharednuget.
Microsoft.Azure.Devices.Provisioning.Security.Tpm v1.2.1
- Updated reference to
Microsoft.Azure.Devices.Sharednuget.