Skip to content

Commit

Permalink
[MAN-457] Add support for desktop simulators (#168)
Browse files Browse the repository at this point in the history
  • Loading branch information
ksidirop-laerdal authored Jan 17, 2025
2 parents 2c84c3a + 435b193 commit 428f63d
Show file tree
Hide file tree
Showing 12 changed files with 108 additions and 70 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -62,10 +62,11 @@
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>

<!-- these versions are getting replaced by the build script in one swift pass -->
<Version>1.0.1208.0</Version>
<FileVersion>1.0.1208.0</FileVersion>
<PackageVersion>1.0.1208.0</PackageVersion>
<AssemblyVersion>1.0.1208.0</AssemblyVersion>
<Version>1.0.1230.0</Version>

<FileVersion>$(Version)</FileVersion>
<PackageVersion>$(Version)</PackageVersion>
<AssemblyVersion>$(Version)</AssemblyVersion>

<Title>$(PackageId)</Title>
<Owners>$(Authors)</Owners>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,10 +77,11 @@
<AllowedReferenceRelatedFileExtensions>$(AllowedReferenceRelatedFileExtensions);.pdb</AllowedReferenceRelatedFileExtensions>

<!-- these versions are getting replaced by the build script in one swift pass -->
<Version>1.0.1208.0</Version>
<FileVersion>1.0.1208.0</FileVersion>
<PackageVersion>1.0.1208.0</PackageVersion>
<AssemblyVersion>1.0.1208.0</AssemblyVersion>
<Version>1.0.1230.0</Version>

<FileVersion>$(Version)</FileVersion>
<PackageVersion>$(Version)</PackageVersion>
<AssemblyVersion>$(Version)</AssemblyVersion>

<Title>$(PackageId)</Title>
<Summary>McuMgr Bindings for MacCatalyst - MAUI ready</Summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,32 +102,32 @@
isa = PBXGroup;
children = (
E769DC768A6D6F0D1CAC3C06 /* McuMgrBindingsiOS.h */,
E769D3E2D33EE281518619A7 /* IOSFirmwareInstaller.swift */,
E769D9D0270D6C4E5DF8E7CE /* EIOSFileUploaderState.swift */,
E769D3E9D67A36F06CF0EFB4 /* EIOSFileDownloaderState.swift */,
E769DD0EF706588EF75704AE /* EIOSDeviceResetterState.swift */,
E769D3130BA737A0C282D1DD /* EIOSFirmwareEraserState.swift */,
E769DCEDC8442691AF65E8F8 /* EIOSFirmwareInstallationState.swift */,
E769DC8A37490B096716C6B8 /* EIOSFirmwareInstallationMode.swift */,
E769D1DEDAD5F89C361DF28C /* EIOSFirmwareInstallationVerdict.swift */,
E769DD92BBBF9A69EAF334F4 /* EIOSFirmwareInstallationFatalError.swift */,
B04DC3642CD3C7810048B553 /* EIOSDeviceResetInitializationVerdict.swift */,
E769D797570DEED2DFC21B70 /* EIOSFileUploadingInitializationVerdict.swift */,
E769D8C352CB06D01D5C1EC7 /* EIOSFileDownloadingInitializationVerdict.swift */,
B04DC3662CD3E1A20048B553 /* EIOSFirmwareErasureInitializationVerdict.swift */,
E769DC8A37490B096716C6B8 /* EIOSFirmwareInstallationMode.swift */,
E769DCEDC8442691AF65E8F8 /* EIOSFirmwareInstallationState.swift */,
E769DB7090742CC7D6AFD01D /* InvalidFirmwareInstallationModeError.swift */,
E769D5CB3083656E75BFBC1A /* IOSFirmwareEraser.swift */,
E769D3130BA737A0C282D1DD /* EIOSFirmwareEraserState.swift */,
E769D417A16B8DCE9D59165A /* IOSFileUploader.swift */,
E769DF03E263D02C508247AA /* IOSDeviceResetter.swift */,
E769DD0EF706588EF75704AE /* EIOSDeviceResetterState.swift */,
E769D9B93897FF4C9ABBAF94 /* IOSFileDownloader.swift */,
E769D5CB3083656E75BFBC1A /* IOSFirmwareEraser.swift */,
E769D3E2D33EE281518619A7 /* IOSFirmwareInstaller.swift */,
B0FF8AE82CCFF8E1004B39DE /* IOSListenerForFileUploader.swift */,
E769D93618819B3E676FE0EA /* IOSListenerForDeviceResetter.swift */,
E769DD6F60E601AFA283D34B /* IOSListenerForFirmwareEraser.swift */,
E769D19F5EC3404138BFDFF8 /* IOSListenerForFileDownloader.swift */,
E769D13250C8CDA8CA70A8B7 /* IOSListenerForFirmwareInstaller.swift */,
E769DE03C73A46ADFF350E43 /* package.json */,
E769DC33E51C5D88437572EB /* DummyPlaceholder.swift */,
E769D9D0270D6C4E5DF8E7CE /* EIOSFileUploaderState.swift */,
E769D417A16B8DCE9D59165A /* IOSFileUploader.swift */,
E769D797570DEED2DFC21B70 /* EIOSFileUploadingInitializationVerdict.swift */,
E769D8D446B42BE572E246D4 /* McuMgrExceptionHelpers.swift */,
E769D9B93897FF4C9ABBAF94 /* IOSFileDownloader.swift */,
E769D3E9D67A36F06CF0EFB4 /* EIOSFileDownloaderState.swift */,
E769D19F5EC3404138BFDFF8 /* IOSListenerForFileDownloader.swift */,
E769D8C352CB06D01D5C1EC7 /* EIOSFileDownloadingInitializationVerdict.swift */,
E769DD92BBBF9A69EAF334F4 /* EIOSFirmwareInstallationFatalError.swift */,
B0FF8AE82CCFF8E1004B39DE /* IOSListenerForFileUploader.swift */,
E769DC33E51C5D88437572EB /* DummyPlaceholder.swift */,
E769DE03C73A46ADFF350E43 /* package.json */,
);
path = McuMgrBindingsiOS;
sourceTree = "<group>";
Expand Down Expand Up @@ -194,10 +194,9 @@
};
buildConfigurationList = E769D4DE04FEC8EDF4BFF2BF /* Build configuration list for PBXProject "McuMgrBindingsiOS" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
developmentRegion = en;
hasScannedForEncodings = 0;
knownRegions = (
English,
en,
);
mainGroup = E769D5C169A2617737447E64;
Expand Down Expand Up @@ -273,7 +272,7 @@
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
Expand Down Expand Up @@ -365,7 +364,7 @@
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_KEY_NSHumanReadableCopyright = "";
INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks";
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -192,7 +192,9 @@ public class IOSFileDownloader: NSObject {

//@objc dont
private func logMessageAdvertisement(_ message: String, _ category: String, _ level: String) {
_listener.logMessageAdvertisement(message, category, level, _remoteFilePathSanitized)
DispatchQueue.global(qos: .background).async { //fire and forget to boost performance
self._listener.logMessageAdvertisement(message, category, level, self._remoteFilePathSanitized)
}
}

//@objc dont
Expand All @@ -218,7 +220,9 @@ public class IOSFileDownloader: NSObject {
_ progressPercentage: Int,
_ averageThroughput: Float32
) {
_listener.fileDownloadProgressPercentageAndDataThroughputChangedAdvertisement(progressPercentage, averageThroughput)
DispatchQueue.global(qos: .background).async { //fire and forget to boost performance
self._listener.fileDownloadProgressPercentageAndDataThroughputChangedAdvertisement(progressPercentage, averageThroughput)
}
}

//@objc dont
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,9 @@ public class IOSFileUploader: NSObject {

//@objc dont
private func logMessageAdvertisement(_ message: String, _ category: String, _ level: String) {
_listener.logMessageAdvertisement(message, category, level, _remoteFilePathSanitized)
DispatchQueue.global(qos: .background).async { //fire and forget to boost performance
self._listener.logMessageAdvertisement(message, category, level, self._remoteFilePathSanitized)
}
}

//@objc dont
Expand Down Expand Up @@ -294,10 +296,12 @@ public class IOSFileUploader: NSObject {
_ progressPercentage: Int,
_ averageThroughput: Float32
) {
_listener.fileUploadProgressPercentageAndDataThroughputChangedAdvertisement(
progressPercentage,
averageThroughput
)
DispatchQueue.global(qos: .background).async { //fire and forget to boost performance
self._listener.fileUploadProgressPercentageAndDataThroughputChangedAdvertisement(
progressPercentage,
averageThroughput
)
}
}

private func setState(_ newState: EIOSFileUploaderState) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,9 @@ public class IOSFirmwareInstaller: NSObject {
//@objc dont

private func logMessageAdvertisement(_ message: String, _ category: String, _ level: String) {
_listener.logMessageAdvertisement(message, category, level);
DispatchQueue.global(qos: .background).async { //fire and forget to boost performance
self._listener.logMessageAdvertisement(message, category, level)
}
}

//@objc dont
Expand Down Expand Up @@ -245,7 +247,9 @@ public class IOSFirmwareInstaller: NSObject {
_ progressPercentage: Int,
_ averageThroughput: Float32
) {
_listener.firmwareUploadProgressPercentageAndDataThroughputChangedAdvertisement(progressPercentage, averageThroughput)
DispatchQueue.global(qos: .background).async { //fire and forget to boost performance
self._listener.firmwareUploadProgressPercentageAndDataThroughputChangedAdvertisement(progressPercentage, averageThroughput)
}
}

private func setState(_ newState: EIOSFirmwareInstallationState) {
Expand Down Expand Up @@ -371,9 +375,9 @@ extension IOSFirmwareInstaller: McuMgrLogDelegate {
atLevel level: iOSMcuManagerLibrary.McuMgrLogLevel
) {
logMessageAdvertisement(
msg,
category.rawValue,
level.name
msg,
category.rawValue,
level.name
)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,11 @@
<AllowedReferenceRelatedFileExtensions>$(AllowedReferenceRelatedFileExtensions);.pdb</AllowedReferenceRelatedFileExtensions>

<!-- these versions are getting replaced by the build script in one swift pass -->
<Version>1.0.1208.0</Version>
<FileVersion>1.0.1208.0</FileVersion>
<PackageVersion>1.0.1208.0</PackageVersion>
<AssemblyVersion>1.0.1208.0</AssemblyVersion>
<Version>1.0.1230.0</Version>

<FileVersion>$(Version)</FileVersion>
<PackageVersion>$(Version)</PackageVersion>
<AssemblyVersion>$(Version)</AssemblyVersion>

<Title>$(PackageId)</Title>
<Summary>McuMgr C# Implementation (WIP)</Summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,10 +74,11 @@
<AllowedReferenceRelatedFileExtensions>$(AllowedReferenceRelatedFileExtensions);.pdb</AllowedReferenceRelatedFileExtensions>

<!-- these versions are getting replaced by the build script in one swift pass -->
<Version>1.0.1208.0</Version>
<FileVersion>1.0.1208.0</FileVersion>
<PackageVersion>1.0.1208.0</PackageVersion>
<AssemblyVersion>1.0.1208.0</AssemblyVersion>
<Version>1.0.1230.0</Version>

<FileVersion>$(Version)</FileVersion>
<PackageVersion>$(Version)</PackageVersion>
<AssemblyVersion>$(Version)</AssemblyVersion>

<Title>$(PackageId)</Title>
<Summary>McuMgr Bindings for iOS - MAUI ready</Summary>
Expand Down
9 changes: 6 additions & 3 deletions Laerdal.McuMgr.slnx.DotSettings.user
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
<wpf:ResourceDictionary xml:space="preserve" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:s="clr-namespace:System;assembly=mscorlib" xmlns:ss="urn:shemas-jetbrains-com:settings-storage-xaml" xmlns:wpf="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AAndroidFirmwareInstaller_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FUsers_003FDominic_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F70029469267e4beb864e0766d0bb075d17a00_003Fa8_003Ffbdeecdb_003FAndroidFirmwareInstaller_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AEIOSDeviceResetterState_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FLibrary_003FApplication_0020Support_003FJetBrains_003FRider2024_002E3_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003Fb9912c9f4b224e928fbee944914df02d1b0c00_003F42_003F82a3227f_003FEIOSDeviceResetterState_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003AExceptionAssertionsExtensions_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FUsers_003FDominic_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FSourcesCache_003Fa6388411dabef15064d56ef6564bbd8ec27419b94df54d04263c246481d07_003FExceptionAssertionsExtensions_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CodeInspection/ExcludedFiles/FilesAndFoldersToSkip2/=7020124F_002D9FFC_002D4AC3_002D8F3D_002DAAB8E0240759_002Ff_003ATask_00601_002Ecs_002Fl_003A_002E_002E_003F_002E_002E_003F_002E_002E_003FUsers_003FDominic_003FAppData_003FRoaming_003FJetBrains_003FRider2024_002E2_003Fresharper_002Dhost_003FDecompilerCache_003Fdecompiler_003F243a037ca7a04510a506adfdd94befbac90930_003F74_003F5841babc_003FTask_00601_002Ecs/@EntryIndexedValue">ForceIncluded</s:String>
<s:String x:Key="/Default/CustomTools/CustomToolsData/@EntryValue"></s:String>
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=5074b48a_002Ddd85_002D447d_002Db5d1_002D16b7a75eed14/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" IsActive="True" Name="All tests from Solution" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;&#xD;
&lt;Solution /&gt;&#xD;
<s:String x:Key="/Default/Environment/UnitTesting/UnitTestSessionStore/Sessions/=5074b48a_002Ddd85_002D447d_002Db5d1_002D16b7a75eed14/@EntryIndexedValue">&lt;SessionState ContinuousTestingMode="0" IsActive="True" Name="All tests from Solution" xmlns="urn:schemas-jetbrains-com:jetbrains-ut-session"&gt;
&lt;Solution /&gt;
&lt;/SessionState&gt;</s:String>
<s:Boolean x:Key="/Default/UnloadedProject/UnloadedProjects/=131e5d65_002D002c_002D354a_002D58d9_002D743f2733d18b_0023Laerdal_002EMcuMgr_002EBindings_002EAndroid/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UnloadedProject/UnloadedProjects/=1eebca17_002Dfd57_002Db6cc_002Dece8_002D1a5895cd083f_0023Laerdal_002EMcuMgr_002EBindings_002EMacCatalyst/@EntryIndexedValue">True</s:Boolean>

<s:Boolean x:Key="/Default/UnloadedProject/UnloadedProjects/=7674d292_002D10b2_002Dc83c_002D9cd9_002D47a43552ee3a_0023Laerdal_002EMcuMgr_002ETests/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UnloadedProject/UnloadedProjects/=94474637_002D1b5f_002D7eb0_002D8a7f_002D7e95aa6c0c0b_0023Laerdal_002EMcuMgr/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UnloadedProject/UnloadedProjects/=962e09e8_002D0e53_002D1451_002D63b3_002D13d08deac464_0023Laerdal_002EMcuMgr_002EBindings_002ENetStandard/@EntryIndexedValue">True</s:Boolean>
<s:Boolean x:Key="/Default/UnloadedProject/UnloadedProjects/=b3bb4f82_002D8427_002D49d7_002D5e69_002De0f8ffbb8be7_0023Laerdal_002EMcuMgr_002EBindings_002EiOS/@EntryIndexedValue">True</s:Boolean>

Expand Down
36 changes: 22 additions & 14 deletions Laerdal.McuMgr/Laerdal.McuMgr.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,19 @@
<IsHostMachineWindows Condition=" '$([System.Runtime.InteropServices.RuntimeInformation]::IsOSPlatform($([System.Runtime.InteropServices.OSPlatform]::Windows)))' == 'true' ">true</IsHostMachineWindows>
<IsHostMachineUnix Condition=" '$(IsHostMachineOSX)' == 'true' OR '$(IsHostMachineLinux)' == 'true' ">true</IsHostMachineUnix>

<!-- - note that we build against netstandard2.1 merely as a dud-placeholder for windows in which we are bound to get not-implemented exceptions all over the place -->
<!-- - note that we build against net8.0 merely as a dud-placeholder for windows in which we are bound to get not-implemented exceptions all over the place -->
<!-- - the dud build for net8 also comes in handy when we want to launch an application inside an ios-simulator in the macos desktop (for UI testing purposes) -->
<!-- - also note it only makes sense to build ios stuff under osx because xcodebuild is only available there -->
<!-- - in azure we omit building maccatalyst for the time being because net8 needs maccatalyst 17.2+ which is only available on macos14 which microsoft currently (Q1 2024) doesn't provide us with in azure just yet -->

<PackageVersionPostfix Condition=" '$(BuildOnlyDudNet8)' == 'true' ">-force-dud</PackageVersionPostfix>

<TargetFrameworks>$(TargetFrameworks)net8.0;</TargetFrameworks>
<TargetFrameworks>$(TargetFrameworks)net8.0-android;</TargetFrameworks>
<TargetFrameworks Condition=" '$(IsHostMachineOSX)' == 'true' ">$(TargetFrameworks)net8.0-ios11;</TargetFrameworks>
<TargetFrameworks Condition=" '$(IsHostMachineOSX)' == 'true' and '$(Should_Skip_MacCatalyst)' != 'true' ">$(TargetFrameworks)net8.0-maccatalyst</TargetFrameworks>
<TargetFrameworks Condition=" '$(BuildOnlyDudNet8)' != 'true' ">$(TargetFrameworks)net8.0-android;</TargetFrameworks>
<TargetFrameworks Condition=" '$(BuildOnlyDudNet8)' != 'true' and '$(IsHostMachineOSX)' == 'true' ">$(TargetFrameworks)net8.0-ios;</TargetFrameworks>
<TargetFrameworks Condition=" '$(BuildOnlyDudNet8)' != 'true' and '$(IsHostMachineOSX)' == 'true' and '$(Should_Skip_MacCatalyst)' != 'true' ">$(TargetFrameworks)net8.0-maccatalyst</TargetFrameworks>

<IsDudNet8_0 Condition=" '$(TargetFramework)' == 'net8.0' ">true</IsDudNet8_0>
<IsDudNet8_0 Condition=" '$(TargetFramework)' == 'net8.0' ">true</IsDudNet8_0>
<IsNet8 Condition=" '$(TargetFramework.ToLower().StartsWith(net8))' == 'true' ">true</IsNet8>
<IsNet8IOS Condition=" '$(TargetFramework.ToLower().StartsWith(net8.0-ios))' == 'true' ">true</IsNet8IOS>
<IsNet8Android Condition=" '$(TargetFramework.ToLower().StartsWith(net8.0-android))' == 'true' ">true</IsNet8Android>
Expand Down Expand Up @@ -73,10 +76,14 @@
<AllowedOutputExtensionsInPackageBuildOutputFolder>$(AllowedOutputExtensionsInPackageBuildOutputFolder);.pdb</AllowedOutputExtensionsInPackageBuildOutputFolder>

<!-- these versions are getting replaced by the build script in one swift pass -->
<Version>1.0.1208.0</Version>
<FileVersion>1.0.1208.0</FileVersion>
<PackageVersion>1.0.1208.0</PackageVersion>
<AssemblyVersion>1.0.1208.0</AssemblyVersion>
<Version>1.0.1230.0</Version>

<FileVersion>$(Version)</FileVersion>
<PackageVersion>$(Version)</PackageVersion>
<AssemblyVersion>$(Version)</AssemblyVersion>

<!-- keep this because it is needed to generate the *-force-dud nuget packages! -->
<PackageVersion>$(PackageVersion)$(PackageVersionPostfix)</PackageVersion>

<Title>$(PackageId)</Title>
<Owners>$(Authors)</Owners>
Expand Down Expand Up @@ -169,21 +176,22 @@

<!-- ANDROID -->
<ItemGroup Condition=" '$(IsAndroid)' == 'true' ">
<PackageReference Include="Laerdal.McuMgr.Bindings.Android" Version="1.0.1208.0"/>
<PackageReference Include="Laerdal.McuMgr.Bindings.Android" Version="1.0.1230.0"/>
</ItemGroup>

<!-- IOS/MacCatalyst -->
<!-- IOS -->
<ItemGroup Condition=" '$(IsIOS)' == 'true' ">
<PackageReference Include="Laerdal.McuMgr.Bindings.iOS" Version="1.0.1208.0"/>
<PackageReference Include="Laerdal.McuMgr.Bindings.iOS" Version="1.0.1230.0"/>
</ItemGroup>

<!-- MACCATALYST -->
<ItemGroup Condition=" '$(IsNetXMacCatalyst)' == 'true' and '$(Should_Skip_MacCatalyst)' != 'true' ">
<PackageReference Include="Laerdal.McuMgr.Bindings.MacCatalyst" Version="1.0.1208.0"/>
<PackageReference Include="Laerdal.McuMgr.Bindings.MacCatalyst" Version="1.0.1230.0"/>
</ItemGroup>

<!-- NETSTANDARD -->
<ItemGroup Condition=" '$(IsDudNet8_0)' == 'true' ">
<PackageReference Include="Laerdal.McuMgr.Bindings.NetStandard" Version="1.0.1208.0"/>
<PackageReference Include="Laerdal.McuMgr.Bindings.NetStandard" Version="1.0.1230.0"/>
</ItemGroup>

</Project>
Loading

0 comments on commit 428f63d

Please sign in to comment.