@@ -1,5 +1,7 @@ | |||
## Ignore Visual Studio temporary files, build results, and | |||
## files generated by popular Visual Studio add-ons. | |||
## | |||
## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore | |||
# User-specific files | |||
*.suo | |||
@@ -15,12 +17,12 @@ | |||
[Dd]ebugPublic/ | |||
[Rr]elease/ | |||
[Rr]eleases/ | |||
[Xx]64/ | |||
[Xx]86/ | |||
[Bb]uild/ | |||
x64/ | |||
x86/ | |||
bld/ | |||
[Bb]in/ | |||
[Oo]bj/ | |||
[Ll]og/ | |||
# Visual Studio 2015 cache/options directory | |||
.vs/ | |||
@@ -40,9 +42,11 @@ TestResult.xml | |||
[Rr]eleasePS/ | |||
dlldata.c | |||
# DNX | |||
# .NET Core | |||
project.lock.json | |||
project.fragment.lock.json | |||
artifacts/ | |||
**/Properties/launchSettings.json | |||
*_i.c | |||
*_p.c | |||
@@ -81,6 +85,7 @@ ipch/ | |||
*.sdf | |||
*.cachefile | |||
*.VC.db | |||
*.VC.VC.opendb | |||
# Visual Studio profiler | |||
*.psess | |||
@@ -108,6 +113,10 @@ _TeamCity* | |||
# DotCover is a Code Coverage Tool | |||
*.dotCover | |||
# Visual Studio code coverage results | |||
*.coverage | |||
*.coveragexml | |||
# NCrunch | |||
_NCrunch_* | |||
.*crunch*.local.xml | |||
@@ -139,13 +148,16 @@ publish/ | |||
# Publish Web Output | |||
*.[Pp]ublish.xml | |||
*.azurePubxml | |||
# TODO: Un-comment the next line if you do not want to checkin | |||
# your web deploy settings because they may include unencrypted | |||
# passwords | |||
#*.pubxml | |||
# TODO: Comment the next line if you want to checkin your web deploy settings | |||
# but database connection strings (with potential passwords) will be unencrypted | |||
*.pubxml | |||
*.publishproj | |||
# Microsoft Azure Web App publish settings. Comment the next line if you want to | |||
# checkin your Azure Web App publish settings, but sensitive information contained | |||
# in these scripts will be unencrypted | |||
PublishScripts/ | |||
# NuGet Packages | |||
*.nupkg | |||
# The packages folder can be ignored because of Package Restore | |||
@@ -154,7 +166,7 @@ publish/ | |||
!**/packages/build/ | |||
# Uncomment if necessary however generally it will be regenerated when needed | |||
#!**/packages/repositories.config | |||
# NuGet v3's project.json files produces more ignoreable files | |||
# NuGet v3's project.json files produces more ignorable files | |||
*.nuget.props | |||
*.nuget.targets | |||
@@ -166,12 +178,11 @@ csx/ | |||
ecf/ | |||
rcf/ | |||
# Microsoft Azure ApplicationInsights config file | |||
ApplicationInsights.config | |||
# Windows Store app package directory | |||
# Windows Store app package directories and files | |||
AppPackages/ | |||
BundleArtifacts/ | |||
Package.StoreAssociation.xml | |||
_pkginfo.txt | |||
# Visual Studio cache files | |||
# files ending in .cache can be ignored | |||
@@ -181,16 +192,19 @@ BundleArtifacts/ | |||
# Others | |||
ClientBin/ | |||
[Ss]tyle[Cc]op.* | |||
~$* | |||
*~ | |||
*.dbmdl | |||
*.dbproj.schemaview | |||
*.jfm | |||
*.pfx | |||
*.publishsettings | |||
node_modules/ | |||
orleans.codegen.cs | |||
# Since there are multiple workflows, uncomment next line to ignore bower_components | |||
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) | |||
#bower_components/ | |||
# RIA/Silverlight projects | |||
Generated_Code/ | |||
@@ -205,6 +219,7 @@ UpgradeLog*.htm | |||
# SQL Server files | |||
*.mdf | |||
*.ldf | |||
*.ndf | |||
# Business Intelligence projects | |||
*.rdl.data | |||
@@ -219,6 +234,10 @@ FakesAssemblies/ | |||
# Node.js Tools for Visual Studio | |||
.ntvs_analysis.dat | |||
node_modules/ | |||
# Typescript v1 declaration files | |||
typings/ | |||
# Visual Studio 6 build log | |||
*.plg | |||
@@ -226,6 +245,9 @@ FakesAssemblies/ | |||
# Visual Studio 6 workspace options file | |||
*.opt | |||
# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) | |||
*.vbw | |||
# Visual Studio LightSwitch build output | |||
**/*.HTMLClient/GeneratedArtifacts | |||
**/*.DesktopClient/GeneratedArtifacts | |||
@@ -234,13 +256,34 @@ FakesAssemblies/ | |||
**/*.Server/ModelManifest.xml | |||
_Pvt_Extensions | |||
# LightSwitch generated files | |||
GeneratedArtifacts/ | |||
ModelManifest.xml | |||
# Paket dependency manager | |||
.paket/paket.exe | |||
paket-files/ | |||
# FAKE - F# Make | |||
.fake/ | |||
nuget.exe | |||
# JetBrains Rider | |||
.idea/ | |||
*.sln.iml | |||
# CodeRush | |||
.cr/ | |||
# Python Tools for Visual Studio (PTVS) | |||
__pycache__/ | |||
*.pyc | |||
# Cake - Uncomment if you are using it | |||
# tools/** | |||
# !tools/packages.config | |||
# Telerik's JustMock configuration file | |||
*.jmconfig | |||
# BizTalk build output | |||
*.btp.cs | |||
*.btm.cs | |||
*.odx.cs | |||
*.xsd.cs | |||
Build/nuget.exe |
@@ -0,0 +1,47 @@ | |||
<?xml version="1.0"?> | |||
<package > | |||
<metadata> | |||
<id>MQTTnet</id> | |||
<version>2.1.4</version> | |||
<authors>Christian Kratky</authors> | |||
<owners>Christian Kratky</owners> | |||
<licenseUrl>https://github.com/chkr1011/MQTTnet/blob/master/LICENSE</licenseUrl> | |||
<projectUrl>https://github.com/chkr1011/MQTTnet</projectUrl> | |||
<iconUrl>https://raw.githubusercontent.com/chkr1011/MQTTnet/master/Images/Logo_128x128.png</iconUrl> | |||
<requireLicenseAcceptance>false</requireLicenseAcceptance> | |||
<description>MQTTnet is a .NET library for MQTT based communication. It provides a MQTT client and a MQTT server (broker).</description> | |||
<releaseNotes>* [.NET Standard] Added support for .NET Standard 1.3 (Thanks to 1iveowl) | |||
* [Server] Added an even which allows processing of all received messages from the clients | |||
* [Server] Fixed an issue when stopping the server | |||
</releaseNotes> | |||
<copyright>Copyright Christian Kratky 2016-2017</copyright> | |||
<tags>MQTT MQTTClient MQTTServer MQTTBroker Broker</tags> | |||
<dependencies> | |||
<group targetFramework="netstandard1.3"> | |||
<dependency id="NETStandard.Library" version="1.6.1" /> | |||
<dependency id="System.Net.Security" version="4.3.1" /> | |||
</group> | |||
<group targetFramework="uap10.0"> | |||
<dependency id="Microsoft.NETCore.UniversalWindowsPlatform" version="5.3.3" /> | |||
</group> | |||
</dependencies> | |||
</metadata> | |||
<files> | |||
<!-- .NET Standard 1.3 --> | |||
<file src="..\Frameworks\MQTTnet.Netstandard\bin\Release\netstandard1.3\MQTTnet.Core.*" target="lib\netstandard1.3\"/> | |||
<file src="..\Frameworks\MQTTnet.Netstandard\bin\Release\netstandard1.3\MQTTnet.*" target="lib\netstandard1.3\"/> | |||
<!-- Universal Windows --> | |||
<file src="..\Frameworks\MQTTnet.UniversalWindows\bin\Release\MQTTnet.Core.*" target="lib\uap10.0\"/> | |||
<file src="..\Frameworks\MQTTnet.UniversalWindows\bin\Release\MQTTnet.*" target="lib\uap10.0\"/> | |||
<!-- .NET Framework --> | |||
<file src="..\Frameworks\MQTTnet.NetFramework\bin\Release\MQTTnet.Core.*" target="lib\net45\"/> | |||
<file src="..\Frameworks\MQTTnet.NetFramework\bin\Release\MQTTnet.*" target="lib\net45\"/> | |||
</files> | |||
</package> |
@@ -0,0 +1,12 @@ | |||
param([string]$version) | |||
if ([string]::IsNullOrEmpty($version)) {$version = "0.0.1"} | |||
$msbuild = "MSBuild.exe" | |||
&$msbuild ..\Frameworks\MQTTnet.NetFramework\MQTTnet.NetFramework.csproj /t:Build /p:Configuration="Release" | |||
&$msbuild ..\Frameworks\MQTTnet.Netstandard\MQTTnet.Netstandard.csproj /t:Build /p:Configuration="Release" | |||
&$msbuild ..\Frameworks\MQTTnet.UniversalWindows\MQTTnet.UniversalWindows.csproj /t:Build /p:Configuration="Release" | |||
Remove-Item .\NuGet -Force -Recurse | |||
New-Item -ItemType Directory -Force -Path .\NuGet | |||
.\NuGet.exe pack MQTTnet.nuspec -Verbosity detailed -Symbols -OutputDir "NuGet" -Version $version |
@@ -1,34 +0,0 @@ | |||
<Project Sdk="Microsoft.NET.Sdk"> | |||
<PropertyGroup> | |||
<TargetFramework>netcoreapp1.1</TargetFramework> | |||
<Authors>Christian Kratky</Authors> | |||
<Company>Christian Kratky</Company> | |||
<Product>MQTTnet</Product> | |||
<Description>MQTTnet is a .NET library for MQTT based communication. It provides a MQTT client and a MQTT server (broker).</Description> | |||
<Copyright>Copyright © Christian Kratky 2016-2017</Copyright> | |||
<Version>2.1.1.0</Version> | |||
<AssemblyVersion>2.1.1.0</AssemblyVersion> | |||
<FileVersion>2.1.1.0</FileVersion> | |||
<GeneratePackageOnBuild>False</GeneratePackageOnBuild> | |||
<AssemblyName>MQTTnet</AssemblyName> | |||
<RootNamespace>MQTTnet</RootNamespace> | |||
<PackageId>MQTTnet.NetCore</PackageId> | |||
<PackageProjectUrl>https://github.com/chkr1011/MQTTnet</PackageProjectUrl> | |||
<RepositoryUrl>https://github.com/chkr1011/MQTTnet</RepositoryUrl> | |||
<PackageTags>MQTT MQTTClient MQTTServer MQTTBroker Broker</PackageTags> | |||
<PackageIconUrl>https://raw.githubusercontent.com/chkr1011/MQTTnet/master/Images/Logo_128x128.png</PackageIconUrl> | |||
<PackageLicenseUrl>https://github.com/chkr1011/MQTTnet/blob/master/LICENSE</PackageLicenseUrl> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Any CPU|AnyCPU'" /> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Any CPU|x64'" /> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Any CPU|x86'" /> | |||
<ItemGroup> | |||
<ProjectReference Include="..\..\MQTTnet.Core\MQTTnet.Core.csproj" /> | |||
</ItemGroup> | |||
</Project> |
@@ -63,6 +63,7 @@ namespace MQTTnet.Implementations | |||
{ | |||
_isRunning = false; | |||
_cancellationTokenSource?.Cancel(false); | |||
_cancellationTokenSource?.Dispose(); | |||
_cancellationTokenSource = null; | |||
@@ -88,7 +89,7 @@ namespace MQTTnet.Implementations | |||
var clientAdapter = new MqttChannelCommunicationAdapter(new MqttTcpChannel(clientSocket, null), new DefaultMqttV311PacketSerializer()); | |||
ClientConnected?.Invoke(this, new MqttClientConnectedEventArgs(clientSocket.RemoteEndPoint.ToString(), clientAdapter)); | |||
} | |||
catch (Exception exception) | |||
catch (Exception exception) when (!(exception is ObjectDisposedException)) | |||
{ | |||
MqttTrace.Error(nameof(MqttServerAdapter), exception, "Error while acceping connection at default endpoint."); | |||
} | |||
@@ -11,5 +11,5 @@ using System.Runtime.InteropServices; | |||
[assembly: AssemblyCulture("")] | |||
[assembly: ComVisible(false)] | |||
[assembly: Guid("a480ef90-0eaa-4d9a-b271-47a9c47f6f7d")] | |||
[assembly: AssemblyVersion("2.1.1.0")] | |||
[assembly: AssemblyFileVersion("2.1.1.0")] | |||
[assembly: AssemblyVersion("2.1.4.0")] | |||
[assembly: AssemblyFileVersion("2.1.4.0")] |
@@ -61,6 +61,7 @@ namespace MQTTnet.Implementations | |||
{ | |||
_isRunning = false; | |||
_cancellationTokenSource?.Cancel(false); | |||
_cancellationTokenSource?.Dispose(); | |||
_cancellationTokenSource = null; | |||
@@ -0,0 +1,29 @@ | |||
<Project Sdk="Microsoft.NET.Sdk"> | |||
<PropertyGroup> | |||
<TargetFramework>netstandard1.3</TargetFramework> | |||
<AssemblyName>MQTTnet</AssemblyName> | |||
<RootNamespace>MQTTnet</RootNamespace> | |||
<AssemblyVersion>2.1.4.0</AssemblyVersion> | |||
<FileVersion>2.1.4.0</FileVersion> | |||
<Version>0.0.0.0</Version> | |||
<Company /> | |||
<Product /> | |||
<Description /> | |||
<Authors /> | |||
<PackageId /> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x86'" /> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" /> | |||
<ItemGroup> | |||
<ProjectReference Include="..\..\MQTTnet.Core\MQTTnet.Core.csproj" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<PackageReference Include="System.Net.Security" Version="4.3.1" /> | |||
</ItemGroup> | |||
</Project> |
@@ -11,11 +11,12 @@ | |||
<AssemblyName>MQTTnet</AssemblyName> | |||
<DefaultLanguage>en-US</DefaultLanguage> | |||
<TargetPlatformIdentifier>UAP</TargetPlatformIdentifier> | |||
<TargetPlatformVersion>10.0.14393.0</TargetPlatformVersion> | |||
<TargetPlatformVersion>10.0.15063.0</TargetPlatformVersion> | |||
<TargetPlatformMinVersion>10.0.10240.0</TargetPlatformMinVersion> | |||
<MinimumVisualStudioVersion>14</MinimumVisualStudioVersion> | |||
<FileAlignment>512</FileAlignment> | |||
<ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> | |||
<RuntimeIdentifiers>win10-arm;win10-arm-aot;win10-x86;win10-x86-aot;win10-x64;win10-x64-aot</RuntimeIdentifiers> | |||
</PropertyGroup> | |||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> | |||
<PlatformTarget>AnyCPU</PlatformTarget> | |||
@@ -108,10 +109,6 @@ | |||
<GenerateLibraryLayout>false</GenerateLibraryLayout> | |||
<DocumentationFile>bin\x64\Release\MQTTnet.XML</DocumentationFile> | |||
</PropertyGroup> | |||
<ItemGroup> | |||
<!-- A reference to the entire .Net Framework and Windows SDK are automatically included --> | |||
<None Include="project.json" /> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<Compile Include="MqttClientFactory.cs" /> | |||
<Compile Include="Implementations\MqttServerAdapter.cs" /> | |||
@@ -126,6 +123,11 @@ | |||
<Name>MQTTnet.Core</Name> | |||
</ProjectReference> | |||
</ItemGroup> | |||
<ItemGroup> | |||
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform"> | |||
<Version>5.3.3</Version> | |||
</PackageReference> | |||
</ItemGroup> | |||
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' < '14.0' "> | |||
<VisualStudioVersion>14.0</VisualStudioVersion> | |||
</PropertyGroup> | |||
@@ -10,5 +10,5 @@ using System.Runtime.InteropServices; | |||
[assembly: AssemblyTrademark("")] | |||
[assembly: AssemblyCulture("")] | |||
[assembly: ComVisible(false)] | |||
[assembly: AssemblyVersion("2.1.1.0")] | |||
[assembly: AssemblyFileVersion("2.1.1.0")] | |||
[assembly: AssemblyVersion("2.1.4.0")] | |||
[assembly: AssemblyFileVersion("2.1.4.0")] |
@@ -1,17 +0,0 @@ | |||
{ | |||
"dependencies": { | |||
"Microsoft.NETCore.UniversalWindowsPlatform": "5.1.0" | |||
}, | |||
"frameworks": { | |||
"uap10.0": {} | |||
}, | |||
"runtimes": { | |||
"win10": {}, | |||
"win10-arm": {}, | |||
"win10-arm-aot": {}, | |||
"win10-x86": {}, | |||
"win10-x86-aot": {}, | |||
"win10-x64": {}, | |||
"win10-x64-aot": {} | |||
} | |||
} |
@@ -1,6 +1,6 @@ | |||
using System; | |||
namespace MQTTnet.Core | |||
namespace MQTTnet.Core.Client | |||
{ | |||
public sealed class MqttApplicationMessageReceivedEventArgs : EventArgs | |||
{ |
@@ -185,7 +185,10 @@ namespace MQTTnet.Core.Client | |||
} | |||
finally | |||
{ | |||
_cancellationTokenSource?.Cancel(); | |||
_cancellationTokenSource?.Cancel(false); | |||
_cancellationTokenSource?.Dispose(); | |||
_cancellationTokenSource = null; | |||
IsConnected = false; | |||
Disconnected?.Invoke(this, EventArgs.Empty); | |||
} | |||
@@ -234,13 +237,7 @@ namespace MQTTnet.Core.Client | |||
_processedPublishPackets.Add(publishPacket.PacketIdentifier); | |||
} | |||
var applicationMessage = new MqttApplicationMessage( | |||
publishPacket.Topic, | |||
publishPacket.Payload, | |||
publishPacket.QualityOfServiceLevel, | |||
publishPacket.Retain | |||
); | |||
var applicationMessage = publishPacket.ToApplicationMessage(); | |||
ApplicationMessageReceived?.Invoke(this, new MqttApplicationMessageReceivedEventArgs(applicationMessage)); | |||
} | |||
@@ -4,6 +4,16 @@ namespace MQTTnet.Core.Internal | |||
{ | |||
internal static class MqttApplicationMessageExtensions | |||
{ | |||
public static MqttApplicationMessage ToApplicationMessage(this MqttPublishPacket publishPacket) | |||
{ | |||
return new MqttApplicationMessage( | |||
publishPacket.Topic, | |||
publishPacket.Payload, | |||
publishPacket.QualityOfServiceLevel, | |||
publishPacket.Retain | |||
); | |||
} | |||
public static MqttPublishPacket ToPublishPacket(this MqttApplicationMessage applicationMessage) | |||
{ | |||
if (applicationMessage == null) | |||
@@ -5,20 +5,20 @@ | |||
<AssemblyName>MQTTnet.Core</AssemblyName> | |||
<RootNamespace>MQTTnet.Core</RootNamespace> | |||
<GeneratePackageOnBuild>False</GeneratePackageOnBuild> | |||
<Description>MQTTnet is a .NET library for MQTT based communication. It provides a MQTT client and a MQTT server (broker).</Description> | |||
<Product>MQTTnet</Product> | |||
<Company>Christian Kratky</Company> | |||
<Authors>Christian Kratky</Authors> | |||
<Version>2.1.2.0</Version> | |||
<PackageId>MQTTnet.Core</PackageId> | |||
<Copyright>Copyright © Christian Kratky 2016-2017</Copyright> | |||
<PackageProjectUrl>https://github.com/chkr1011/MQTTnet</PackageProjectUrl> | |||
<PackageIconUrl>https://raw.githubusercontent.com/chkr1011/MQTTnet/master/Images/Logo_128x128.png</PackageIconUrl> | |||
<RepositoryUrl>https://github.com/chkr1011/MQTTnet</RepositoryUrl> | |||
<PackageTags>MQTT MQTTClient MQTTServer MQTTBroker Broker</PackageTags> | |||
<FileVersion>2.1.2.0</FileVersion> | |||
<AssemblyVersion>2.1.2.0</AssemblyVersion> | |||
<PackageLicenseUrl>https://github.com/chkr1011/MQTTnet/blob/master/LICENSE</PackageLicenseUrl> | |||
<Description></Description> | |||
<Product></Product> | |||
<Company></Company> | |||
<Authors></Authors> | |||
<Version>0.0.0.0</Version> | |||
<PackageId></PackageId> | |||
<Copyright></Copyright> | |||
<PackageProjectUrl></PackageProjectUrl> | |||
<PackageIconUrl></PackageIconUrl> | |||
<RepositoryUrl></RepositoryUrl> | |||
<PackageTags></PackageTags> | |||
<FileVersion>2.1.4.0</FileVersion> | |||
<AssemblyVersion>2.1.4.0</AssemblyVersion> | |||
<PackageLicenseUrl></PackageLicenseUrl> | |||
</PropertyGroup> | |||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Any CPU|AnyCPU'" /> | |||
@@ -0,0 +1,17 @@ | |||
using System; | |||
namespace MQTTnet.Core.Server | |||
{ | |||
public sealed class MqttApplicationMessageReceivedEventArgs : EventArgs | |||
{ | |||
public MqttApplicationMessageReceivedEventArgs(string clientId, MqttApplicationMessage applicationMessage) | |||
{ | |||
ClientId = clientId; | |||
ApplicationMessage = applicationMessage ?? throw new ArgumentNullException(nameof(applicationMessage)); | |||
} | |||
public string ClientId { get; } | |||
public MqttApplicationMessage ApplicationMessage { get; } | |||
} | |||
} |
@@ -19,20 +19,23 @@ namespace MQTTnet.Core.Server | |||
private readonly MqttClientMessageQueue _messageQueue; | |||
private readonly Action<MqttClientSession, MqttPublishPacket> _publishPacketReceivedCallback; | |||
private readonly MqttServerOptions _options; | |||
private CancellationTokenSource _cancellationTokenSource; | |||
private IMqttCommunicationAdapter _adapter; | |||
private string _identifier; | |||
private MqttApplicationMessage _willApplicationMessage; | |||
public MqttClientSession(MqttServerOptions options, Action<MqttClientSession, MqttPublishPacket> publishPacketReceivedCallback) | |||
public MqttClientSession(string clientId, MqttServerOptions options, Action<MqttClientSession, MqttPublishPacket> publishPacketReceivedCallback) | |||
{ | |||
ClientId = clientId; | |||
_options = options ?? throw new ArgumentNullException(nameof(options)); | |||
_publishPacketReceivedCallback = publishPacketReceivedCallback ?? throw new ArgumentNullException(nameof(publishPacketReceivedCallback)); | |||
_messageQueue = new MqttClientMessageQueue(options); | |||
} | |||
public string ClientId { get; } | |||
public bool IsConnected => _adapter != null; | |||
public async Task RunAsync(string identifier, MqttApplicationMessage willApplicationMessage, IMqttCommunicationAdapter adapter) | |||
@@ -5,6 +5,7 @@ using System.Threading.Tasks; | |||
using MQTTnet.Core.Adapter; | |||
using MQTTnet.Core.Diagnostics; | |||
using MQTTnet.Core.Exceptions; | |||
using MQTTnet.Core.Internal; | |||
using MQTTnet.Core.Packets; | |||
using MQTTnet.Core.Protocol; | |||
@@ -21,6 +22,8 @@ namespace MQTTnet.Core.Server | |||
_options = options ?? throw new ArgumentNullException(nameof(options)); | |||
} | |||
public event EventHandler<MqttApplicationMessageReceivedEventArgs> ApplicationMessageReceived; | |||
public async Task RunClientSessionAsync(MqttClientConnectedEventArgs eventArgs) | |||
{ | |||
try | |||
@@ -114,7 +117,7 @@ namespace MQTTnet.Core.Server | |||
{ | |||
isExistingSession = false; | |||
clientSession = new MqttClientSession(_options, DispatchPublishPacket); | |||
clientSession = new MqttClientSession(connectPacket.ClientId, _options, DispatchPublishPacket); | |||
_clientSessions[connectPacket.ClientId] = clientSession; | |||
MqttTrace.Verbose(nameof(MqttClientSessionsManager), $"Created a new session for client '{connectPacket.ClientId}'."); | |||
@@ -126,6 +129,9 @@ namespace MQTTnet.Core.Server | |||
private void DispatchPublishPacket(MqttClientSession senderClientSession, MqttPublishPacket publishPacket) | |||
{ | |||
var eventArgs = new MqttApplicationMessageReceivedEventArgs(senderClientSession.ClientId, publishPacket.ToApplicationMessage()); | |||
ApplicationMessageReceived?.Invoke(this, eventArgs); | |||
foreach (var clientSession in _clientSessions.Values.ToList()) | |||
{ | |||
clientSession.EnqueuePublishPacket(senderClientSession, publishPacket); | |||
@@ -21,6 +21,7 @@ namespace MQTTnet.Core.Server | |||
_adapters = adapters ?? throw new ArgumentNullException(nameof(adapters)); | |||
_clientSessionsManager = new MqttClientSessionsManager(options); | |||
_clientSessionsManager.ApplicationMessageReceived += (s, e) => ApplicationMessageReceived?.Invoke(s, e); | |||
} | |||
public IList<string> GetConnectedClients() | |||
@@ -30,6 +31,8 @@ namespace MQTTnet.Core.Server | |||
public event EventHandler<MqttClientConnectedEventArgs> ClientConnected; | |||
public event EventHandler<MqttApplicationMessageReceivedEventArgs> ApplicationMessageReceived; | |||
public void InjectClient(string identifier, IMqttCommunicationAdapter adapter) | |||
{ | |||
if (adapter == null) throw new ArgumentNullException(nameof(adapter)); | |||
@@ -56,7 +59,8 @@ namespace MQTTnet.Core.Server | |||
public void Stop() | |||
{ | |||
_cancellationTokenSource?.Cancel(); | |||
_cancellationTokenSource?.Cancel(false); | |||
_cancellationTokenSource?.Dispose(); | |||
_cancellationTokenSource = null; | |||
foreach (var adapter in _adapters) | |||
@@ -1,56 +0,0 @@ | |||
<?xml version="1.0"?> | |||
<package > | |||
<metadata> | |||
<id>MQTTnet</id> | |||
<version>2.1.3.0</version> | |||
<authors>Christian Kratky</authors> | |||
<owners>Christian Kratky</owners> | |||
<licenseUrl>https://github.com/chkr1011/MQTTnet/blob/master/LICENSE</licenseUrl> | |||
<projectUrl>https://github.com/chkr1011/MQTTnet</projectUrl> | |||
<iconUrl>https://raw.githubusercontent.com/chkr1011/MQTTnet/master/Images/Logo_128x128.png</iconUrl> | |||
<requireLicenseAcceptance>false</requireLicenseAcceptance> | |||
<description>MQTTnet is a .NET library for MQTT based communication. It provides a MQTT client and a MQTT server (broker).</description> | |||
<releaseNotes>* [Core] Any exception while accessing the underlying data source is now rethrown as "MqttCommunicationException". | |||
* [Core] Extended exception information when an invalid packet type is received. | |||
* [Server] Added TLS 1.2 support (but not for UWP) (thanks to Zazzmatazz) | |||
* [Client] Added TLS 1.2 support (thanks to Zazzmatazz) | |||
* [Core] Optimized async task management | |||
* [Nuget] Fixed x64 files</releaseNotes> | |||
<copyright>Copyright Christian Kratky 2016-2017</copyright> | |||
<tags>MQTT MQTTClient MQTTServer MQTTBroker Broker</tags> | |||
</metadata> | |||
<files> | |||
<!-- Universal Windows --> | |||
<file src=".\Frameworks\MQTTnet.UniversalWindows\bin\Release\MQTTnet.Core.dll" target="lib\uap10.0"/> | |||
<file src=".\Frameworks\MQTTnet.UniversalWindows\bin\Release\MQTTnet.dll" target="lib\uap10.0"/> | |||
<file src=".\Frameworks\MQTTnet.UniversalWindows\bin\Release\MQTTnet.pri" target="lib\uap10.0"/> | |||
<file src=".\Frameworks\MQTTnet.UniversalWindows\bin\ARM\Release\MQTTnet.Core.dll" target="lib\uap10.0-arm"/> | |||
<file src=".\Frameworks\MQTTnet.UniversalWindows\bin\ARM\Release\MQTTnet.dll" target="lib\uap10.0-arm"/> | |||
<file src=".\Frameworks\MQTTnet.UniversalWindows\bin\ARM\Release\MQTTnet.pri" target="lib\uap10.0-arm"/> | |||
<file src=".\Frameworks\MQTTnet.UniversalWindows\bin\x64\Release\MQTTnet.Core.dll" target="lib\uap10.0-x64"/> | |||
<file src=".\Frameworks\MQTTnet.UniversalWindows\bin\x64\Release\MQTTnet.dll" target="lib\uap10.0-x64"/> | |||
<file src=".\Frameworks\MQTTnet.UniversalWindows\bin\x64\Release\MQTTnet.pri" target="lib\uap10.0-x64"/> | |||
<file src=".\Frameworks\MQTTnet.UniversalWindows\bin\x86\Release\MQTTnet.Core.dll" target="lib\uap10.0-x86"/> | |||
<file src=".\Frameworks\MQTTnet.UniversalWindows\bin\x86\Release\MQTTnet.dll" target="lib\uap10.0-x86"/> | |||
<file src=".\Frameworks\MQTTnet.UniversalWindows\bin\x86\Release\MQTTnet.pri" target="lib\uap10.0-x86"/> | |||
<!-- .NET Framework --> | |||
<file src=".\Frameworks\MQTTnet.NetFramework\bin\Release\MQTTnet.Core.dll" target="lib\net45"/> | |||
<file src=".\Frameworks\MQTTnet.NetFramework\bin\Release\MQTTnet.dll" target="lib\net45"/> | |||
<file src=".\Frameworks\MQTTnet.NetFramework\bin\x86\Release\MQTTnet.Core.dll" target="lib\net45-x86"/> | |||
<file src=".\Frameworks\MQTTnet.NetFramework\bin\x86\Release\MQTTnet.dll" target="lib\net45-x86"/> | |||
<file src=".\Frameworks\MQTTnet.NetFramework\bin\x64\Release\MQTTnet.Core.dll" target="lib\net45-x64"/> | |||
<file src=".\Frameworks\MQTTnet.NetFramework\bin\x64\Release\MQTTnet.dll" target="lib\net45-x64"/> | |||
<!-- .NET Core App --> | |||
<file src=".\Frameworks\MQTTnet.NetCoreApp\bin\Release\netcoreapp1.1\MQTTnet.Core.dll" target="lib\netcoreapp1.1"/> | |||
<file src=".\Frameworks\MQTTnet.NetCoreApp\bin\Release\netcoreapp1.1\MQTTnet.dll" target="lib\netcoreapp1.1"/> | |||
</files> | |||
</package> |
@@ -1,7 +1,7 @@ | |||
| |||
Microsoft Visual Studio Solution File, Format Version 12.00 | |||
# Visual Studio 15 | |||
VisualStudioVersion = 15.0.26430.12 | |||
VisualStudioVersion = 15.0.26430.15 | |||
MinimumVisualStudioVersion = 10.0.40219.1 | |||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MQTTnet.Core.Tests", "Tests\MQTTnet.Core.Tests\MQTTnet.Core.Tests.csproj", "{A7FF0C91-25DE-4BA6-B39E-F54E8DADF1CC}" | |||
EndProject | |||
@@ -13,19 +13,20 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{9248C2E1 | |||
EndProject | |||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Frameworks", "Frameworks", "{32A630A7-2598-41D7-B625-204CD906F5FB}" | |||
EndProject | |||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MQTTnet.Core", "MQTTnet.Core\MQTTnet.Core.csproj", "{2ECB99E4-72D0-4C23-99BA-93D511D3967D}" | |||
EndProject | |||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{002203AF-2565-4C0D-95ED-027FDEFE0C35}" | |||
ProjectSection(SolutionItems) = preProject | |||
MQTTnet.nuspec = MQTTnet.nuspec | |||
EndProjectSection | |||
EndProject | |||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MQTTnet.NetCoreApp", "Frameworks\MQTTnet.NetCoreApp\MQTTnet.NetCoreApp.csproj", "{1A1B7F51-5328-4395-9D9C-07D70965825E}" | |||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MQTTnet.Core", "MQTTnet.Core\MQTTnet.Core.csproj", "{2ECB99E4-72D0-4C23-99BA-93D511D3967D}" | |||
EndProject | |||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MQTTnet.TestApp.NetFramework", "Tests\MQTTnet.TestApp.NetFramework\MQTTnet.TestApp.NetFramework.csproj", "{D9D74F33-6943-49B2-B765-7BD589082098}" | |||
EndProject | |||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MQTTnet.TestApp.UniversalWindows", "Tests\MQTTnet.TestApp.UniversalWindows\MQTTnet.TestApp.UniversalWindows.csproj", "{FF1F72D6-9524-4422-9497-3CC0002216ED}" | |||
EndProject | |||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MQTTnet.NetStandard", "Frameworks\MQTTnet.Netstandard\MQTTnet.NetStandard.csproj", "{3587E506-55A2-4EB3-99C7-DC01E42D25D2}" | |||
EndProject | |||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{67C28AC1-BC3A-420A-BE9C-FA2401431CF9}" | |||
ProjectSection(SolutionItems) = preProject | |||
Build\build.ps1 = Build\build.ps1 | |||
Build\MQTTnet.nuspec = Build\MQTTnet.nuspec | |||
EndProjectSection | |||
EndProject | |||
Global | |||
GlobalSection(SolutionConfigurationPlatforms) = preSolution | |||
Debug|Any CPU = Debug|Any CPU | |||
@@ -71,6 +72,7 @@ Global | |||
{A480EF90-0EAA-4D9A-B271-47A9C47F6F7D}.Release|x86.ActiveCfg = Release|x86 | |||
{A480EF90-0EAA-4D9A-B271-47A9C47F6F7D}.Release|x86.Build.0 = Release|x86 | |||
{BD60C727-D8E8-40C3-B8E3-C95A864AE611}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||
{BD60C727-D8E8-40C3-B8E3-C95A864AE611}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||
{BD60C727-D8E8-40C3-B8E3-C95A864AE611}.Debug|ARM.ActiveCfg = Debug|ARM | |||
{BD60C727-D8E8-40C3-B8E3-C95A864AE611}.Debug|ARM.Build.0 = Debug|ARM | |||
{BD60C727-D8E8-40C3-B8E3-C95A864AE611}.Debug|x64.ActiveCfg = Debug|x64 | |||
@@ -78,6 +80,7 @@ Global | |||
{BD60C727-D8E8-40C3-B8E3-C95A864AE611}.Debug|x86.ActiveCfg = Debug|x86 | |||
{BD60C727-D8E8-40C3-B8E3-C95A864AE611}.Debug|x86.Build.0 = Debug|x86 | |||
{BD60C727-D8E8-40C3-B8E3-C95A864AE611}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||
{BD60C727-D8E8-40C3-B8E3-C95A864AE611}.Release|Any CPU.Build.0 = Release|Any CPU | |||
{BD60C727-D8E8-40C3-B8E3-C95A864AE611}.Release|ARM.ActiveCfg = Release|ARM | |||
{BD60C727-D8E8-40C3-B8E3-C95A864AE611}.Release|ARM.Build.0 = Release|ARM | |||
{BD60C727-D8E8-40C3-B8E3-C95A864AE611}.Release|x64.ActiveCfg = Release|x64 | |||
@@ -100,22 +103,6 @@ Global | |||
{2ECB99E4-72D0-4C23-99BA-93D511D3967D}.Release|x64.Build.0 = Release|x64 | |||
{2ECB99E4-72D0-4C23-99BA-93D511D3967D}.Release|x86.ActiveCfg = Release|x86 | |||
{2ECB99E4-72D0-4C23-99BA-93D511D3967D}.Release|x86.Build.0 = Release|x86 | |||
{1A1B7F51-5328-4395-9D9C-07D70965825E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||
{1A1B7F51-5328-4395-9D9C-07D70965825E}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||
{1A1B7F51-5328-4395-9D9C-07D70965825E}.Debug|ARM.ActiveCfg = Debug|Any CPU | |||
{1A1B7F51-5328-4395-9D9C-07D70965825E}.Debug|ARM.Build.0 = Debug|Any CPU | |||
{1A1B7F51-5328-4395-9D9C-07D70965825E}.Debug|x64.ActiveCfg = Debug|x64 | |||
{1A1B7F51-5328-4395-9D9C-07D70965825E}.Debug|x64.Build.0 = Debug|x64 | |||
{1A1B7F51-5328-4395-9D9C-07D70965825E}.Debug|x86.ActiveCfg = Debug|x86 | |||
{1A1B7F51-5328-4395-9D9C-07D70965825E}.Debug|x86.Build.0 = Debug|x86 | |||
{1A1B7F51-5328-4395-9D9C-07D70965825E}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||
{1A1B7F51-5328-4395-9D9C-07D70965825E}.Release|Any CPU.Build.0 = Release|Any CPU | |||
{1A1B7F51-5328-4395-9D9C-07D70965825E}.Release|ARM.ActiveCfg = Release|Any CPU | |||
{1A1B7F51-5328-4395-9D9C-07D70965825E}.Release|ARM.Build.0 = Release|Any CPU | |||
{1A1B7F51-5328-4395-9D9C-07D70965825E}.Release|x64.ActiveCfg = Release|x64 | |||
{1A1B7F51-5328-4395-9D9C-07D70965825E}.Release|x64.Build.0 = Release|x64 | |||
{1A1B7F51-5328-4395-9D9C-07D70965825E}.Release|x86.ActiveCfg = Release|x86 | |||
{1A1B7F51-5328-4395-9D9C-07D70965825E}.Release|x86.Build.0 = Release|x86 | |||
{D9D74F33-6943-49B2-B765-7BD589082098}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||
{D9D74F33-6943-49B2-B765-7BD589082098}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||
{D9D74F33-6943-49B2-B765-7BD589082098}.Debug|ARM.ActiveCfg = Debug|Any CPU | |||
@@ -133,6 +120,7 @@ Global | |||
{D9D74F33-6943-49B2-B765-7BD589082098}.Release|x86.ActiveCfg = Release|x86 | |||
{D9D74F33-6943-49B2-B765-7BD589082098}.Release|x86.Build.0 = Release|x86 | |||
{FF1F72D6-9524-4422-9497-3CC0002216ED}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||
{FF1F72D6-9524-4422-9497-3CC0002216ED}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||
{FF1F72D6-9524-4422-9497-3CC0002216ED}.Debug|ARM.ActiveCfg = Debug|ARM | |||
{FF1F72D6-9524-4422-9497-3CC0002216ED}.Debug|ARM.Build.0 = Debug|ARM | |||
{FF1F72D6-9524-4422-9497-3CC0002216ED}.Debug|ARM.Deploy.0 = Debug|ARM | |||
@@ -143,6 +131,7 @@ Global | |||
{FF1F72D6-9524-4422-9497-3CC0002216ED}.Debug|x86.Build.0 = Debug|x86 | |||
{FF1F72D6-9524-4422-9497-3CC0002216ED}.Debug|x86.Deploy.0 = Debug|x86 | |||
{FF1F72D6-9524-4422-9497-3CC0002216ED}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||
{FF1F72D6-9524-4422-9497-3CC0002216ED}.Release|Any CPU.Build.0 = Release|Any CPU | |||
{FF1F72D6-9524-4422-9497-3CC0002216ED}.Release|ARM.ActiveCfg = Release|ARM | |||
{FF1F72D6-9524-4422-9497-3CC0002216ED}.Release|ARM.Build.0 = Release|ARM | |||
{FF1F72D6-9524-4422-9497-3CC0002216ED}.Release|ARM.Deploy.0 = Release|ARM | |||
@@ -152,6 +141,22 @@ Global | |||
{FF1F72D6-9524-4422-9497-3CC0002216ED}.Release|x86.ActiveCfg = Release|x86 | |||
{FF1F72D6-9524-4422-9497-3CC0002216ED}.Release|x86.Build.0 = Release|x86 | |||
{FF1F72D6-9524-4422-9497-3CC0002216ED}.Release|x86.Deploy.0 = Release|x86 | |||
{3587E506-55A2-4EB3-99C7-DC01E42D25D2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | |||
{3587E506-55A2-4EB3-99C7-DC01E42D25D2}.Debug|Any CPU.Build.0 = Debug|Any CPU | |||
{3587E506-55A2-4EB3-99C7-DC01E42D25D2}.Debug|ARM.ActiveCfg = Debug|Any CPU | |||
{3587E506-55A2-4EB3-99C7-DC01E42D25D2}.Debug|ARM.Build.0 = Debug|Any CPU | |||
{3587E506-55A2-4EB3-99C7-DC01E42D25D2}.Debug|x64.ActiveCfg = Debug|x64 | |||
{3587E506-55A2-4EB3-99C7-DC01E42D25D2}.Debug|x64.Build.0 = Debug|x64 | |||
{3587E506-55A2-4EB3-99C7-DC01E42D25D2}.Debug|x86.ActiveCfg = Debug|x86 | |||
{3587E506-55A2-4EB3-99C7-DC01E42D25D2}.Debug|x86.Build.0 = Debug|x86 | |||
{3587E506-55A2-4EB3-99C7-DC01E42D25D2}.Release|Any CPU.ActiveCfg = Release|Any CPU | |||
{3587E506-55A2-4EB3-99C7-DC01E42D25D2}.Release|Any CPU.Build.0 = Release|Any CPU | |||
{3587E506-55A2-4EB3-99C7-DC01E42D25D2}.Release|ARM.ActiveCfg = Release|Any CPU | |||
{3587E506-55A2-4EB3-99C7-DC01E42D25D2}.Release|ARM.Build.0 = Release|Any CPU | |||
{3587E506-55A2-4EB3-99C7-DC01E42D25D2}.Release|x64.ActiveCfg = Release|Any CPU | |||
{3587E506-55A2-4EB3-99C7-DC01E42D25D2}.Release|x64.Build.0 = Release|Any CPU | |||
{3587E506-55A2-4EB3-99C7-DC01E42D25D2}.Release|x86.ActiveCfg = Release|Any CPU | |||
{3587E506-55A2-4EB3-99C7-DC01E42D25D2}.Release|x86.Build.0 = Release|Any CPU | |||
EndGlobalSection | |||
GlobalSection(SolutionProperties) = preSolution | |||
HideSolutionNode = FALSE | |||
@@ -160,8 +165,8 @@ Global | |||
{A7FF0C91-25DE-4BA6-B39E-F54E8DADF1CC} = {9248C2E1-B9D6-40BF-81EC-86004D7765B4} | |||
{A480EF90-0EAA-4D9A-B271-47A9C47F6F7D} = {32A630A7-2598-41D7-B625-204CD906F5FB} | |||
{BD60C727-D8E8-40C3-B8E3-C95A864AE611} = {32A630A7-2598-41D7-B625-204CD906F5FB} | |||
{1A1B7F51-5328-4395-9D9C-07D70965825E} = {32A630A7-2598-41D7-B625-204CD906F5FB} | |||
{D9D74F33-6943-49B2-B765-7BD589082098} = {9248C2E1-B9D6-40BF-81EC-86004D7765B4} | |||
{FF1F72D6-9524-4422-9497-3CC0002216ED} = {9248C2E1-B9D6-40BF-81EC-86004D7765B4} | |||
{3587E506-55A2-4EB3-99C7-DC01E42D25D2} = {32A630A7-2598-41D7-B625-204CD906F5FB} | |||
EndGlobalSection | |||
EndGlobal |
@@ -20,7 +20,7 @@ MQTTnet is a .NET library for MQTT based communication. It provides a MQTT clien | |||
* Lightweight (only the low level implementation of MQTT, no overhead) | |||
## Supported frameworks | |||
* .NET Standard 1.1+ | |||
* .NET Standard 1.3+ | |||
* .NET Core 1.1+ | |||
* .NET Core App 1.1+ | |||
* .NET Framework 4.5.2+ (x86, x64, AnyCPU) | |||
@@ -45,7 +45,7 @@ If you use this library and want to see your project here please let me know. | |||
# MqttClient | |||
## Example | |||
```c# | |||
```csharp | |||
var options = new MqttClientOptions | |||
{ | |||
Server = "localhost" | |||
@@ -119,7 +119,7 @@ while (true) | |||
## Example | |||
```c# | |||
```csharp | |||
var options = new MqttServerOptions | |||
{ | |||
ConnectionValidator = p => | |||
@@ -8,6 +8,11 @@ namespace MQTTnet.Core.Tests | |||
{ | |||
public event EventHandler<MqttClientConnectedEventArgs> ClientConnected; | |||
public void FireClientConnectedEvent(MqttClientConnectedEventArgs eventArgs) | |||
{ | |||
ClientConnected?.Invoke(this, eventArgs); | |||
} | |||
public void Start(MqttServerOptions options) | |||
{ | |||
} | |||
@@ -11,8 +11,8 @@ | |||
<AssemblyName>MQTTnet.TestApp.UniversalWindows</AssemblyName> | |||
<DefaultLanguage>en-US</DefaultLanguage> | |||
<TargetPlatformIdentifier>UAP</TargetPlatformIdentifier> | |||
<TargetPlatformVersion Condition=" '$(TargetPlatformVersion)' == '' ">10.0.14393.0</TargetPlatformVersion> | |||
<TargetPlatformMinVersion>10.0.10240.0</TargetPlatformMinVersion> | |||
<TargetPlatformVersion Condition=" '$(TargetPlatformVersion)' == '' ">10.0.15063.0</TargetPlatformVersion> | |||
<TargetPlatformMinVersion>10.0.15063.0</TargetPlatformMinVersion> | |||
<MinimumVisualStudioVersion>14</MinimumVisualStudioVersion> | |||
<FileAlignment>512</FileAlignment> | |||
<ProjectTypeGuids>{A5A43C5B-DE2A-4C0C-9213-0A381AF9435A};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids> | |||
@@ -137,7 +137,7 @@ | |||
</ItemGroup> | |||
<ItemGroup> | |||
<PackageReference Include="Microsoft.NETCore.UniversalWindowsPlatform"> | |||
<Version>5.2.3</Version> | |||
<Version>5.3.3</Version> | |||
</PackageReference> | |||
</ItemGroup> | |||
<PropertyGroup Condition=" '$(VisualStudioVersion)' == '' or '$(VisualStudioVersion)' < '14.0' "> | |||
@@ -150,7 +150,7 @@ | |||
<NoWarn>;2008</NoWarn> | |||
<NoStdLib>true</NoStdLib> | |||
<DebugType>full</DebugType> | |||
<PlatformTarget>AnyCPU</PlatformTarget> | |||
<PlatformTarget>x86</PlatformTarget> | |||
<UseVSHostingProcess>false</UseVSHostingProcess> | |||
<ErrorReport>prompt</ErrorReport> | |||
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet> | |||