Releases: Azure/azure-iot-sdk-csharp
Releases · Azure/azure-iot-sdk-csharp
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
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
Microsoft.Azure.Devices.Shared.1.25.1-preview-001
- Add support for retrieving
ModelId
onTwin
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
Microsoft.Azure.Devices.Client.1.29.1-preview-001
- Rename
DeviceStreamRequest.Url
toDeviceStreamRequest.Uri
, since it represents a Uri.- NOTE: This is a breaking change for
DeviceStreaming
APIs.
- NOTE: This is a breaking change for
- 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 throwsInvalidOperationException
. - Fix issue where AMQP connection throws
ObjectDisposedException
whenOpenAsync
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 ofIotHubCommunicationException
. - Revert to throw
OperationCancelledException
if 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.Json
dependency to 12.0.3 - Fixed twin parsing to use
DateTimeOffset
instead ofDateTime
(#1122) - Fixed Mqtt adaptor not always cleaning up while closing (PR #1181)
- Fixed
MqttTransportHandler
not handlingConnectExceptions
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 withMqtt_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
andAmqpTransportSettings.CertificateRevocationCheck
are now linked withTlsVersions.Instance.CertificateRevocationCheck
property.- Made
Message
class partially cloneable - to be able to copy system properties to a new instance (#1923). SeeMessage.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
- Fix issue where MQTT
Microsoft.Azure.Devices.1.27.1-preview-001
- Rename
DeviceStreamResponse.Url
toDeviceStreamResponse.Uri
, since it represents a Uri.- NOTE: This is a breaking change for
DeviceStreaming
APIs.
- NOTE: This is a breaking change for
- 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 theSslProtocol
value 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
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
andRegistryManager.ExportDevicesAsync
. The overloads take aJobProperties
instance so the user can pass all required and any optional parameters. - Two factory methods to make it easier to call
ImportDevicesAsync
andExportDevicesAsync
, making it clear which properties are required and which are optional. They areJobProperties.CreateForInportJob
andJobProperties.CreateForExportJob
respectively. - Removed two unreferenced classes:
ImportDevicesRequest
andExportDevicesRequest
.
- New enum
- Reuse
HttpClient
instances (#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
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
Microsoft.Azure.Devices.Client v1.27.0
- Update
Microsoft.Azure.Amqp
version to2.4.2
. - Enable
ModuleClient
to setClientOptions
. - 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 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.Amqp
version 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-after
header 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.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
andAmqpTransportSettings.CertificateRevocationCheck
are now linked withTlsVersions.Instance.CertificateRevocationCheck
property.- Made
Message
class partially cloneable - to be able to copy system properties to a new instance (#1923). SeeMessage.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
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
andRegistryManager.ExportDevicesAsync
. The overloads take aJobProperties
instance so the user can pass all required and any optional parameters. - Two factory methods to make it easier to call
ImportDevicesAsync
andExportDevicesAsync
, making it clear which properties are required and which are optional. They areJobProperties.CreateForInportJob
andJobProperties.CreateForExportJob
respectively. - Removed two unreferenced classes:
ImportDevicesRequest
andExportDevicesRequest
.
- New enum
IotHubClientWebSocket.ConnectAsync
method now respects theSslProtocol
value specified inTlsVersions.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
to1
. 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
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
Microsoft.Azure.Devices.Client v1.23.1
- ModuleClient configured with Mqtt_Tcp_Only fails to reconnect after edgeHub restart then never recovers (#1239)