Releases: Azure/azure-iot-sdk-csharp
Microsoft Azure IoT SDKs for .NET LTS patch Release 2023-12-20
This release is a patch for the Microsoft Azure IoT Hub SDK for .NET LTS patch Release 2023-01-24 LTS release.
Microsoft.Azure.Devices.Client 1.36.9
- Using 'Azure.Storage.Blobs' instead of 'WindowsAzure.Storage' (#3418)
- Removed support for .NET 451 (#3418)
Microsoft.Azure.Devices 1.31.6
Microsoft Azure IoT SDKs for .NET Release 2023-12-20
Microsoft.Azure.Devices.Client 1.42.2
Security Updates:
- Using 'Azure.Storage.Blobs' instead of 'WindowsAzure.Storage' (#3414)
Microsoft Azure IoT SDKs for .NET Release 2023-12-11
Microsoft.Azure.Devices.Client 1.42.1
Security Updates:
- Update to latest newtonsoft.json library (#3403)
- Upgrade dotnetty to latest (#3401)
- Remove support for net451, netcore21, net5, upgrade azure core dependency, target net6 (#3400)
Bug fixes:
- Use local Newtonsoft settings when serializing/deserializing instead of assigning global settings (#3402)
- Log possibly unobserved exceptions in MQTT (#3319)
Microsoft.Azure.Devices 1.39.1
Security Updates:
- Update to latest newtonsoft.json library (#3403)
- Remove support for net451, netcore21, net5, upgrade azure core dependency, target net6 (#3400)
Bug fixes:
- Use local Newtonsoft settings when serializing/deserializing instead of assigning global settings (#3402)
- Log possibly unobserved exceptions in MQTT (#3319)
Microsoft.Azure.Devices.Shared 1.30.4
Security Updates:
- Update to latest newtonsoft.json library (#3403)
- Remove support for net451, netcore21, net5, upgrade azure core dependency, target net6 (#3400)
Bug fixes:
- Use local Newtonsoft settings when serializing/deserializing instead of assigning global settings (#3402)
Microsoft.Azure.Devices.Provisioning.Client 1.19.4
Security Updates:
- Update to latest newtonsoft.json library (#3403)
- Remove support for net451, netcore21, net5, upgrade azure core dependency, target net6 (#3400)
Bug fixes:
- Log possibly unobserved exceptions in MQTT (#3319)
Microsoft.Azure.Devices.Provisioning.Service 1.18.4
Security Updates:
- Update to latest newtonsoft.json library (#3403)
- Remove support for net451, netcore21, net5, upgrade azure core dependency, target net6 (#3400)
Bug fixes:
- Use local Newtonsoft settings when serializing/deserializing instead of assigning global settings (#3402)
- Log possibly unobserved exceptions in MQTT (#3319)
Microsoft.Azure.Devices.Provisioning.Transport.Amqp 1.16.6
Security Updates:
- Remove support for net451, netcore21, net5, upgrade azure core dependency, target net6 (#3400)
Microsoft.Azure.Devices.Provisioning.Transport.Http 1.15.4
Security Updates:
- Remove support for net451, netcore21, net5, upgrade azure core dependency, target net6 (#3400)
Microsoft.Azure.Devices.Provisioning.Transport.Mqtt 1.17.4
Security Updates:
- Upgrade dotnetty to latest (#3401)
- Remove support for net451, netcore21, net5, upgrade azure core dependency, target net6 (#3400)
Bug fixes:
- Log possibly unobserved exceptions in MQTT (#3319)
Microsoft.Azure.Devices.Provisioning.Security.Tpm 1.14.4
Security Updates:
- Update to latest newtonsoft.json library (#3403)
- Remove support for net451, netcore21, net5, upgrade azure core dependency, target net6 (#3400)
Bug fixes:
- Use local Newtonsoft settings when serializing/deserializing instead of assigning global settings (#3402)
Microsoft Azure IoT SDKs for .NET v2 Preview #7 Release 2023-08-17
This is the seventh preview of the v2 clients. You can read about the changes in this migration guide.
Relevant changes
- Direct method subscription not removed after disconnect by @tmahmood-microsoft in #3359
Microsoft Azure IoT SDKs for .NET v2 Preview #6 Release 2023-08-07
This is the sixth preview of the v2 clients. You can read about the changes in this migration guide.
Relevant changes
- Add OnBehalfOf authentication to V2 for edgehub by @patilsnr in #3353
- Make currentRetryCount consistent across IotHub and DPS by @patilsnr in #3355
- addresses supporting byte[] in direct methods and making TwinProperties able to be directly converted to json by @patilsnr in #3340
- [v2 - bug fix] Queue MQTT C2D messages if callback not set by @tmahmood-microsoft #3336
- Add comment explaining twin patch over edge isn't applied immediately by @abhipsaMisra in #3331
- Exception on passing different gateway hostnames through different inputs by @abhipsaMisra in #3330
- Remove default remote certificate callback by @timtay-microsoft in #3329
- Use gateway hostname from options for connection string flow by @abhipsaMisra in #3326
- Throw exception if IoT device module invokes an IoT edge module API by @abhipsaMisra in #3323
- Fix twin desired property payload conversion - MQTT by @tmahmood-microsoft in #3322
- Make DirectMethodPrequest.Payload to be settable by client applications by @abhipsaMisra in #3317
- Update service error codes by @drwill-ms in #3316
- Add code examples for public APIs in IotHubDeviceClient, IotHubModuleClient, IotHubBaseClient and retry policies by @brycewang-microsoft in #3308
Microsoft Azure IoT SDKs for .NET Release 2023-05-01
Microsoft.Azure.Devices.Client 1.42.0
- Apply JsonSerializerSettings to hub device (#3107)
- Set state to 'closed' when CloseAsync() is called (#3149)
- Ensure device client methods throw an object disposed exception (#3212)
- Allow users to pass in HttpClient to use for file upload operations (#3293)
- Update service error codes (#3315)
- Update reference to
Microsoft.Azure.Devices.Shared
nuget.
Bug fixes
- Stop the sas token refresh loop once CloseAsync() is called (#3021)
- Send an event in ReceiveMessageHandler before completing received message (#3116)
- Fix synchronization of semaphore in retry delegating handler (#3135)
- Allow a message to be sent to multiple outputs (#3203)
- Fix file upload HTTP client not handling DNS changes (#3266)
- Properly set connection lease timeout regardless of .NET target framework (#3279)
- Avoid NRE and disposed exceptions when closing client twice (#3312)
Microsoft.Azure.Devices 1.39.0
- Update error message for service reported errors (#3183)
- Update service error codes (#3315)
- Replace custom methods with string methods (#2801)
public static bool IsNullOrWhiteSpace(this string value)
is removed due to duplicated functionality and users should use the native API on the string class instead -string.IsNullOrWhiteSpace(value)
.
- Update reference to
Microsoft.Azure.Devices.Shared
nuget.
Bug fixes
- Fix bug in date deserialization of device method response (#3097)
- Fix where HttpClientHelper should not log when logging is disabled (#3150)
- Fix NRE from GetExceptionCodeAsync (#3304)
Microsoft.Azure.Devices.Shared 1.30.3
Bug fixes
- Stop using JObject.Parse for json string in TwinCollection (#3113)
Microsoft.Azure.Devices.Provisioning.Client 1.19.3
- Apply JsonSerializerSettings to provisioning device (#3113)
- Update reference to
Microsoft.Azure.Devices.Shared
nuget.
Microsoft.Azure.Devices.Provisioning.Service 1.18.3
- Apply JsonSerializerSettings to provisioning service (#3113)
- Update reference to
Microsoft.Azure.Devices.Shared
nuget.
Microsoft.Azure.Devices.Provisioning.Transport.Amqp 1.16.5
- Update reference to
Microsoft.Azure.Devices.Shared
nuget.
Microsoft.Azure.Devices.Provisioning.Transport.Http 1.15.3
- Update reference to
Microsoft.Azure.Devices.Shared
nuget.
Bug fixes
- Fix DPS registration over HTTP with escaped characters in the registration Id (#3059)
Microsoft.Azure.Devices.Provisioning.Transport.Mqtt 1.17.3
- Update reference to
Microsoft.Azure.Devices.Shared
nuget.
Microsoft.Azure.Devices.Provisioning.Security.Tpm 1.14.3
- Update reference to
Microsoft.Azure.Devices.Shared
nuget.
Microsoft Azure IoT SDKs for .NET v2 Preview #5 Release 2023-04-26
This is the fifth preview of the v2 clients. You can read about the changes in this migration guide.
Relevant changes
- Set state to 'closed' when CloseAsync() is called by @abhipsaMisra in #3149
- For c2d, take payload as object, similar to other operations by @drwill-ms in #3154
- Make exception ctors public by @drwill-ms in #3158
- Make ConnectionStatusInfo ctors public by @drwill-ms in #3167
- Throw IotHubClientException for file uploading with invalid correlation id by @brycewang-microsoft in #3159
- Utilize AsyncPageable for query return types by @timtay-microsoft in #3165
- Drop dependency on the hub service client from the device client by @brycewang-microsoft in #3178
- Utilize AsyncPageable for DPS query return types by @timtay-microsoft in #3176
- Fix bug where reconnection failed if client had been previously closed by @abhipsaMisra in #3196
- Simplify PayloadConvention to enable non-JSON payloads by @drwill-ms in #3189
- Make file upload notification callback async by @drwill-ms in #3224
- Pass byte[] through as payload for C2D for binary payloads by @drwill-ms in #3229
- Rename and cleanup ErrorDelegatingHandler by @drwill-ms in #3234
- TelemetryMessage should be able to take bytes and not serialize them by @drwill-ms in #3242
- Cleanup more device sdk handlers by @drwill-ms in #3245
- Separate out semaphores for subscription and client open-close by @abhipsaMisra in #3249
- Ensure client throws ObjectDisposedException when disposed by @drwill-ms in #3250
- Unsubscribe from connection loss events when closing service client AMQP connection by @timtay-microsoft in #3237
- Fix some ErrorCode in IotHubServiceException by @brycewang-microsoft in #3254
- Simplify/rename error class given to IoT hub service client error processors by @timtay-microsoft in #3255
- Fix bug where error processor would execute 3 times on a connection loss event by @timtay-microsoft in #3261
- Miscellaneous DPS service client cleanup by @timtay-microsoft in #3264
- Connection state management by @abhipsaMisra in #3251
- Update misc NuGet dependency versions by @drwill-ms in #3274
- Rename transport handler base in delegating pipeline by @abhipsaMisra in #3277
- Update MQTT and AMQP minor package versions by @drwill-ms in #3278
- Refactor to not send the same element through multiple objects by @abhipsaMisra in #3282
- Fix bug where device operations not recovering after reconnect by @brycewang-microsoft in #3281
- Remove methods from PayloadConvention that are only needed by the DefaultPayloadConvention class by @drwill-ms in #3286
- Open failure on reconnection shouldn't transition to Closed by @abhipsaMisra in #3289
- Add transport pipeline capabilities to HTTP based operations by @abhipsaMisra in #3285
- Cancel twin ops on disconnect by @drwill-ms in #3287
- Small logical fix in MqttTransportHandler by @drwill-ms in #3291
- Update cert chains codes by @drwill-ms in #3301
- Allow users to pass in HttpClient for file upload/module method requests by @timtay-microsoft in #3299
- Fix device AMQP layer not proactively renewing tokens by @timtay-microsoft in #3303
Full Changelog: 2023-03-13-v2preview...2023-04-26-v2preview
Microsoft Azure IoT SDKs for .NET LTS patch Release 2023-03-28
This release is a patch for the Microsoft Azure IoT Hub SDK for .NET LTS patch Release 2023-01-24 LTS release.
Microsoft.Azure.Devices.Client 1.36.8
- Fix bug where client's retry policy applied n^2 times rather than n times (#3148)
- Decouple client open-close semaphore from callback subscription semaphore (#3148)
- Set transport state to 'closed' when CloseAsync() is called (#3160)
Microsoft.Azure.Devices 1.31.5
- Address fix for FxCop analyzer issue (#3148)
Microsoft Azure IoT SDKs for .NET v2 Preview #4 Release 2023-03-13
This is the fourth preview of the v2 clients. You can read about the changes in this migration guide.
Relevant changes
- Make Location property from DigitalTwinUpdateResponse internal by @schoims in #3109
- Fix device export deserialization of Id by @drwill-ms in #3112
- Fix bug for CreatedOnUtc DateTimeOffset in TelemetryMessage by @abhipsaMisra in #3117
- Add model for import job errors by @drwill-ms in #3124
- Fix amqp objects closure event handlers by @abhipsaMisra in #3127
- Edge module created from env vars by @drwill-ms in #3140
- Name change for edge module client method to send message(s) by @drwill-ms in #3141
Full Changelog: 2023-02-09-v2preview...2023-03-13-v2preview
Microsoft Azure IoT SDKs for .NET v2 Preview #3 Release 2023-02-09
This is the third preview of the v2 clients. You can read about the changes in this migration guide.
Bug fixes
- Fixed an issue over AMQP when a link or session was closed that the connection status callback wasn't being called (#3127)
What's Changed
- Convert RetryDelegatingHandlerTests to Moq by @ngastelum-ms in #2929
- Minor fixes in samples by @schoims in #2937
- Remove tests that validate service behavior, and fix another failing … by @drwill-ms in #2934
- Convert tests to Moq and remove Nsubstitute by @ngastelum-ms in #2942
- Add more doc comments for handling user-supplied callbacks for cloud-to-device communication by @brycewang-microsoft in #2939
- Call OpenAsync() before sending telemetry message by @schoims in #2944
- fix: use convention method to get payload bytes by @abhipsaMisra in #2946
- Update to latest non-preview NuGet dependencies by @drwill-ms in #2945
- Update doc comments, specifically looking at web docs generated by @drwill-ms in #2947
- Delete unreferenced code from samples by @abhipsaMisra in #2949
- Consolidate exceptions thrown out by different clients by @brycewang-microsoft in #2887
- Remove env vars and checks for App insight by @andyk-ms in #2950
- Moq test conversion by @ngastelum-ms in #2948
- Add back DisposeAsync support to device clients by @drwill-ms in #2959
- Streamline pipelines to finish skipped matrix platforms earlier by @drwill-ms in #2963
- Update ETag type and TwinMetadata in DPS by @schoims in #2964
- Add samples to v2 pipeline by @ngastelum-ms in #2969
- Fix certificate validation E2E tests for the hub and provisioning clients by @brycewang-microsoft in #2960
- Stop throwing error code DeviceMaximumQueueDepthExceeded from device client by @brycewang-microsoft in #2971
- fix - v2 GatewayHostname ignored for MQTT by @tmahmood-microsoft in #2975
- Remove out-of-support targets from test matrix by @abhipsaMisra in #2976
- Delete duplicate service getting started sample directory by @ngastelum-ms in #2985
- Delete duplicate provisioning/device/samples/Getting Started directory by @ngastelum-ms in #2986
- Update the supported doc readme and simplify test csproj by @abhipsaMisra in #2987
- Parse out service returned error message by @abhipsaMisra in #2967
- Fix the logic of checking AuthenticationException as inner exceptions by @brycewang-microsoft in #2996
- Configure CA and update a few other projects' properties by @drwill-ms in #2965
- Parse service error fot get twin failures - mqtt by @abhipsaMisra in #2999
- Add in unrelated changes from STJ conversion attempt by @drwill-ms in #3003
- Disable invalid certificate test setup by @abhipsaMisra in #3008
- Remove telemetry batch operation over MQTT by @abhipsaMisra in #3000
- Remove json validation and most null value handling by @drwill-ms in #3009
- Parse out error message - amqp by @abhipsaMisra in #3007
- Use ETag type with DigitalTwinClient by @drwill-ms in #3010
- JSON cleanup of IoT Hub service direct method + unit tests by @drwill-ms in #3011
- Cleanup more models by @drwill-ms in #3012
- Update JSON for Hub service client twins by @drwill-ms in #3013
- Fix unit test case that does not match its name by @schoims in #3014
- Remove converter for twin metadata by @drwill-ms in #3016
- Doc update for SAS token refresh over AMQP vs MQTT by @andyk-ms in #3017
- Fix build errors in previews/v2 by @abhipsaMisra in #3024
- Make CRL inspection configurable by @abhipsaMisra in #3022
- Address corner cases around sas token refresh loop cleanup by @abhipsaMisra in #3041
- Add code coverage data to pipeline by @ngastelum-ms in #3019
- Create best practice solution sample using X.509 certificate authentication by @schoims in #3036
- Add test for recovery after quota being exceeded by @abhipsaMisra in #3050
- Exclude unittests from code coverage results by @ngastelum-ms in #3053
- refactor(prov-service-tests): clean up unit test namespaces by @abhipsaMisra in #3051
- JSON-related changes for enums and required property by @drwill-ms in #3054
- Misc code cleanup by @drwill-ms in #3057
- Small typo fix by @schoims in #3080
- Cleanup DPS service enrollment samples and SDK code by @drwill-ms in #3077
- Remove ClientRuntime dependency and add Newtonsoft.Json package by @schoims in #3082
- Provisioning device unit tests coverage - part 1 by @brycewang-microsoft in #3048
- Devices.Client code coverage gaps by @tmahmood-microsoft in #3020
- Edge module sample for module-to-module messaging by @tmahmood-microsoft in #3083
- Utilize retry policy when retrying to send SAS token in CBS auth in AMQP by @schoims in #3074
- Added sample for Edge Module direct method by @tmahmood-microsoft in #3087
- Add test cases for provisioning service client by @abhipsaMisra in #3081
- Remove backdoor cert validation bypass by @drwill-ms in #3095
- Speed up the loading of environment variables for E2E tests by @drwill-ms in #3096
- Fix bug in date deserialization of device method response by @brycewang-microsoft in #3098
- Update IoT hub service client init by @drwill-ms in #3100
- Rev projects for another preview release by @drwill-ms in #3104
- Fix build errors in release flavor by @drwill-ms in #3106
- Add JsonSerializerSettings to NewtonsoftJsonPayloadSerializer for the hub device by @brycewang-microsoft in #3105
- Add migration doc misses found in API review by @drwill-ms in #3108
Full Changelog: 2022-11-03...2023-02-09-v2preview