~ruther/NosSmooth.Comms

fe65520941bab5c5e7053f94f58a692e1f65a6b2 — Rutherther 2 years ago 12e8d20
chore: put Tcp, NamedPipes and LocalData assemblies into other assemblies to reduce number of unnecessary projects
20 files changed, 86 insertions(+), 181 deletions(-)

M NosSmooth.Comms.sln
M src/Core/NosSmooth.Comms.Core/Extensions/ServiceCollectionExtensions.cs
R src/Core/{NosSmooth.Comms.NamedPipes/NamedPipeClient.cs => NosSmooth.Comms.Core/NamedPipes/NamedPipeClient.cs}
R src/Core/{NosSmooth.Comms.NamedPipes/NamedPipeServer.cs => NosSmooth.Comms.Core/NamedPipes/NamedPipeServer.cs}
R src/Core/{NosSmooth.Comms.Tcp/TcpClient.cs => NosSmooth.Comms.Core/Tcp/TcpClient.cs}
R src/Core/{NosSmooth.Comms.Tcp/TcpServer.cs => NosSmooth.Comms.Core/Tcp/TcpServer.cs}
D src/Core/NosSmooth.Comms.NamedPipes/Extensions/ServiceCollectionExtensions.cs
D src/Core/NosSmooth.Comms.NamedPipes/NosSmooth.Comms.NamedPipes.csproj
D src/Core/NosSmooth.Comms.Tcp/Extensions/ServiceCollectionExtensions.cs
D src/Core/NosSmooth.Comms.Tcp/NosSmooth.Comms.Tcp.csproj
M src/Local/NosSmooth.Comms.Inject/DllMain.cs
M src/Local/NosSmooth.Comms.Inject/MessageResponders/FocusResponder.cs
M src/Local/NosSmooth.Comms.Inject/MessageResponders/FollowResponder.cs
R src/Local/{NosSmooth.Comms.LocalData/FocusMessage.cs => NosSmooth.Comms.Inject/Messages/FocusMessage.cs}
R src/Local/{NosSmooth.Comms.LocalData/FollowMessage.cs => NosSmooth.Comms.Inject/Messages/FollowMessage.cs}
M src/Local/NosSmooth.Comms.Inject/NosSmooth.Comms.Inject.csproj
M src/Local/NosSmooth.Comms.Local/CommsInjector.cs
M src/Local/NosSmooth.Comms.Local/NosSmooth.Comms.Local.csproj
D src/Local/NosSmooth.Comms.LocalData/NosSmooth.Comms.LocalData.csproj
M src/Samples/ConsolePacketLogger/ConsolePacketLogger.csproj
M NosSmooth.Comms.sln => NosSmooth.Comms.sln +0 -21
@@ 4,8 4,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NosSmooth.Comms.Abstraction
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NosSmooth.Comms.Inject", "src\Local\NosSmooth.Comms.Inject\NosSmooth.Comms.Inject.csproj", "{7EFDE13A-1D42-44FE-A752-EBE6AC25E1DC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NosSmooth.Comms.NamedPipes", "src\Core\NosSmooth.Comms.NamedPipes\NosSmooth.Comms.NamedPipes.csproj", "{9621D790-97FC-4E01-BB0C-CA1F33B4C934}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NosSmooth.Comms.Local", "src\Local\NosSmooth.Comms.Local\NosSmooth.Comms.Local.csproj", "{A61B8A4F-EB81-41BC-8131-B45C0BCE0EA4}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Core", "Core", "{EFE65101-4414-4966-813D-90FE3736F6B1}"


@@ 16,12 14,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Samples", "Samples", "{711B
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsolePacketLogger", "src\Samples\ConsolePacketLogger\ConsolePacketLogger.csproj", "{A154A209-B86F-4180-B329-9B51F5FCD99F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NosSmooth.Comms.LocalData", "src\Local\NosSmooth.Comms.LocalData\NosSmooth.Comms.LocalData.csproj", "{8749D2C0-6253-4A88-BA38-55B7C10D074B}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NosSmooth.Comms.Core", "src\Core\NosSmooth.Comms.Core\NosSmooth.Comms.Core.csproj", "{70275C91-1114-4673-8F9B-B0C311BFE337}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NosSmooth.Comms.Tcp", "src\Core\NosSmooth.Comms.Tcp\NosSmooth.Comms.Tcp.csproj", "{04F43EA9-BC90-446F-8272-90705CAE9C27}"
EndProject
Global
	GlobalSection(SolutionConfigurationPlatforms) = preSolution
		Debug|Any CPU = Debug|Any CPU


@@ 36,10 30,6 @@ Global
		{7EFDE13A-1D42-44FE-A752-EBE6AC25E1DC}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{7EFDE13A-1D42-44FE-A752-EBE6AC25E1DC}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{7EFDE13A-1D42-44FE-A752-EBE6AC25E1DC}.Release|Any CPU.Build.0 = Release|Any CPU
		{9621D790-97FC-4E01-BB0C-CA1F33B4C934}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{9621D790-97FC-4E01-BB0C-CA1F33B4C934}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{9621D790-97FC-4E01-BB0C-CA1F33B4C934}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{9621D790-97FC-4E01-BB0C-CA1F33B4C934}.Release|Any CPU.Build.0 = Release|Any CPU
		{A61B8A4F-EB81-41BC-8131-B45C0BCE0EA4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{A61B8A4F-EB81-41BC-8131-B45C0BCE0EA4}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{A61B8A4F-EB81-41BC-8131-B45C0BCE0EA4}.Release|Any CPU.ActiveCfg = Release|Any CPU


@@ 48,27 38,16 @@ Global
		{A154A209-B86F-4180-B329-9B51F5FCD99F}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{A154A209-B86F-4180-B329-9B51F5FCD99F}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{A154A209-B86F-4180-B329-9B51F5FCD99F}.Release|Any CPU.Build.0 = Release|Any CPU
		{8749D2C0-6253-4A88-BA38-55B7C10D074B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{8749D2C0-6253-4A88-BA38-55B7C10D074B}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{8749D2C0-6253-4A88-BA38-55B7C10D074B}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{8749D2C0-6253-4A88-BA38-55B7C10D074B}.Release|Any CPU.Build.0 = Release|Any CPU
		{70275C91-1114-4673-8F9B-B0C311BFE337}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{70275C91-1114-4673-8F9B-B0C311BFE337}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{70275C91-1114-4673-8F9B-B0C311BFE337}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{70275C91-1114-4673-8F9B-B0C311BFE337}.Release|Any CPU.Build.0 = Release|Any CPU
		{04F43EA9-BC90-446F-8272-90705CAE9C27}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
		{04F43EA9-BC90-446F-8272-90705CAE9C27}.Debug|Any CPU.Build.0 = Debug|Any CPU
		{04F43EA9-BC90-446F-8272-90705CAE9C27}.Release|Any CPU.ActiveCfg = Release|Any CPU
		{04F43EA9-BC90-446F-8272-90705CAE9C27}.Release|Any CPU.Build.0 = Release|Any CPU
	EndGlobalSection
	GlobalSection(NestedProjects) = preSolution
		{D3B6C5ED-9291-4215-8F8A-F3530849B896} = {EFE65101-4414-4966-813D-90FE3736F6B1}
		{9621D790-97FC-4E01-BB0C-CA1F33B4C934} = {EFE65101-4414-4966-813D-90FE3736F6B1}
		{A61B8A4F-EB81-41BC-8131-B45C0BCE0EA4} = {1AD3F38F-67A8-472D-8AF3-875C6F93EC16}
		{7EFDE13A-1D42-44FE-A752-EBE6AC25E1DC} = {1AD3F38F-67A8-472D-8AF3-875C6F93EC16}
		{A154A209-B86F-4180-B329-9B51F5FCD99F} = {711B1BE4-9AE3-4A9D-A5F2-3434D057870E}
		{8749D2C0-6253-4A88-BA38-55B7C10D074B} = {1AD3F38F-67A8-472D-8AF3-875C6F93EC16}
		{70275C91-1114-4673-8F9B-B0C311BFE337} = {EFE65101-4414-4966-813D-90FE3736F6B1}
		{04F43EA9-BC90-446F-8272-90705CAE9C27} = {EFE65101-4414-4966-813D-90FE3736F6B1}
	EndGlobalSection
EndGlobal

M src/Core/NosSmooth.Comms.Core/Extensions/ServiceCollectionExtensions.cs => src/Core/NosSmooth.Comms.Core/Extensions/ServiceCollectionExtensions.cs +75 -0
@@ 4,8 4,11 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System.Net;
using Microsoft.Extensions.DependencyInjection;
using NosSmooth.Comms.Core.NamedPipes;
using NosSmooth.Comms.Core.Responders;
using NosSmooth.Comms.Core.Tcp;
using NosSmooth.Comms.Data;
using NosSmooth.Comms.Data.Responders;
using NosSmooth.Core.Client;


@@ 134,6 137,78 @@ public static class ServiceCollectionExtensions
        return serviceCollection;
    }

    /// <summary>
    /// Adds a named pipe client as a <see cref="IClient"/>.
    /// </summary>
    /// <param name="serviceCollection">The service collection.</param>
    /// <param name="pipeNameResolver">A function for resolving the name of the pipe using service provider.</param>
    /// <returns>The same service collection.</returns>
    public static IServiceCollection AddNamedPipeClient
        (this IServiceCollection serviceCollection, Func<IServiceProvider, string> pipeNameResolver)
        => serviceCollection
            .AddSingleton<NamedPipeClient>(p => new NamedPipeClient(pipeNameResolver(p)))
            .AddSingleton<IClient>(p => p.GetRequiredService<NamedPipeClient>());

    /// <summary>
    /// Adds a named pipe server as a <see cref="IServer"/>.
    /// </summary>
    /// <param name="serviceCollection">The service collection.</param>
    /// <param name="pipeNameResolver">A function for resolving the name of the pipe using service provider.</param>
    /// <returns>The same service collection.</returns>
    public static IServiceCollection AddNamedPipeServer
        (this IServiceCollection serviceCollection, Func<IServiceProvider, string> pipeNameResolver)
        => serviceCollection
            .AddSingleton<NamedPipeServer>(p => new NamedPipeServer(pipeNameResolver(p)))
            .AddSingleton<IServer>(p => p.GetRequiredService<NamedPipeServer>());

    /// <summary>
    /// Adds tcp server as <see cref="IServer"/>.
    /// </summary>
    /// <param name="serviceCollection">The service collection.</param>
    /// <param name="bindResolver">A resovler used for resolving the ip and port to bind to.</param>
    /// <returns>The same service collection.</returns>
    public static IServiceCollection AddTcpServer
    (
        this IServiceCollection serviceCollection,
        Func<IServiceProvider, (IPAddress BindAddress, int Port)> bindResolver
    )
    {
        return serviceCollection
            .AddSingleton<IServer>(p => p.GetRequiredService<TcpServer>())
            .AddSingleton<TcpServer>
            (
                p =>
                {
                    var resolved = bindResolver(p);
                    return new TcpServer(resolved.BindAddress, resolved.Port);
                }
            );
    }

    /// <summary>
    /// Adds tcp client as <see cref="IClient"/>.
    /// </summary>
    /// <param name="serviceCollection">The service collection.</param>
    /// <param name="connectionResolver">A resovler used for resolving the hostname and port to connect to.</param>
    /// <returns>The same service collection.</returns>
    public static IServiceCollection AddTcpClient
    (
        this IServiceCollection serviceCollection,
        Func<IServiceProvider, (string Hostname, int Port)> connectionResolver
    )
    {
        return serviceCollection
            .AddSingleton<IClient>(p => p.GetRequiredService<TcpClient>())
            .AddSingleton<TcpClient>
            (
                p =>
                {
                    var resolved = connectionResolver(p);
                    return new TcpClient(resolved.Hostname, resolved.Port);
                }
            );
    }

    private static IServiceCollection AddInjecting(this IServiceCollection serviceCollection)
        => serviceCollection
            .AddScoped<ConnectionInjector>()

R src/Core/NosSmooth.Comms.NamedPipes/NamedPipeClient.cs => src/Core/NosSmooth.Comms.Core/NamedPipes/NamedPipeClient.cs +1 -1
@@ 9,7 9,7 @@ using System.IO.Pipes;
using NosSmooth.Comms.Data;
using Remora.Results;

namespace NosSmooth.Comms.NamedPipes;
namespace NosSmooth.Comms.Core.NamedPipes;

/// <summary>
/// A client using named pipes.

R src/Core/NosSmooth.Comms.NamedPipes/NamedPipeServer.cs => src/Core/NosSmooth.Comms.Core/NamedPipes/NamedPipeServer.cs +1 -2
@@ 6,11 6,10 @@

using System.Data;
using System.IO.Pipes;
using System.Xml;
using NosSmooth.Comms.Data;
using Remora.Results;

namespace NosSmooth.Comms.NamedPipes;
namespace NosSmooth.Comms.Core.NamedPipes;

/// <summary>
/// A server using named pipes.

R src/Core/NosSmooth.Comms.Tcp/TcpClient.cs => src/Core/NosSmooth.Comms.Core/Tcp/TcpClient.cs +1 -1
@@ 8,7 8,7 @@ using System.Data;
using NosSmooth.Comms.Data;
using Remora.Results;

namespace NosSmooth.Comms.Tcp;
namespace NosSmooth.Comms.Core.Tcp;

/// <summary>
/// A client using tcp.

R src/Core/NosSmooth.Comms.Tcp/TcpServer.cs => src/Core/NosSmooth.Comms.Core/Tcp/TcpServer.cs +1 -1
@@ 10,7 10,7 @@ using System.Net.Sockets;
using NosSmooth.Comms.Data;
using Remora.Results;

namespace NosSmooth.Comms.Tcp;
namespace NosSmooth.Comms.Core.Tcp;

/// <summary>
/// A server using tcp.

D src/Core/NosSmooth.Comms.NamedPipes/Extensions/ServiceCollectionExtensions.cs => src/Core/NosSmooth.Comms.NamedPipes/Extensions/ServiceCollectionExtensions.cs +0 -41
@@ 1,41 0,0 @@
//
//  ServiceCollectionExtensions.cs
//
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System.IO.Pipes;
using Microsoft.Extensions.DependencyInjection;
using NosSmooth.Comms.Data;

namespace NosSmooth.Comms.NamedPipes.Extensions;

/// <summary>
/// Extension methods for <see cref="IServiceCollection"/>.
/// </summary>
public static class ServiceCollectionExtensions
{
    /// <summary>
    /// Adds a named pipe client as a <see cref="IClient"/>.
    /// </summary>
    /// <param name="serviceCollection">The service collection.</param>
    /// <param name="pipeNameResolver">A function for resolving the name of the pipe using service provider.</param>
    /// <returns>The same service collection.</returns>
    public static IServiceCollection AddNamedPipeClient
        (this IServiceCollection serviceCollection, Func<IServiceProvider, string> pipeNameResolver)
        => serviceCollection
            .AddSingleton<NamedPipeClient>(p => new NamedPipeClient(pipeNameResolver(p)))
            .AddSingleton<IClient>(p => p.GetRequiredService<NamedPipeClient>());

    /// <summary>
    /// Adds a named pipe server as a <see cref="IServer"/>.
    /// </summary>
    /// <param name="serviceCollection">The service collection.</param>
    /// <param name="pipeNameResolver">A function for resolving the name of the pipe using service provider.</param>
    /// <returns>The same service collection.</returns>
    public static IServiceCollection AddNamedPipeServer
        (this IServiceCollection serviceCollection, Func<IServiceProvider, string> pipeNameResolver)
        => serviceCollection
            .AddSingleton<NamedPipeServer>(p => new NamedPipeServer(pipeNameResolver(p)))
            .AddSingleton<IServer>(p => p.GetRequiredService<NamedPipeServer>());
}
\ No newline at end of file

D src/Core/NosSmooth.Comms.NamedPipes/NosSmooth.Comms.NamedPipes.csproj => src/Core/NosSmooth.Comms.NamedPipes/NosSmooth.Comms.NamedPipes.csproj +0 -13
@@ 1,13 0,0 @@
<Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>
        <TargetFramework>net7.0</TargetFramework>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
    </PropertyGroup>

    <ItemGroup>
      <ProjectReference Include="..\NosSmooth.Comms.Abstractions\NosSmooth.Comms.Abstractions.csproj" />
    </ItemGroup>

</Project>

D src/Core/NosSmooth.Comms.Tcp/Extensions/ServiceCollectionExtensions.cs => src/Core/NosSmooth.Comms.Tcp/Extensions/ServiceCollectionExtensions.cs +0 -65
@@ 1,65 0,0 @@
//
//  ServiceCollectionExtensions.cs
//
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using System.Net;
using Microsoft.Extensions.DependencyInjection;
using NosSmooth.Comms.Data;

namespace NosSmooth.Comms.Tcp.Extensions;

/// <summary>
/// Extension methods for <see cref="IServiceCollection"/>.
/// </summary>
public static class ServiceCollectionExtensions
{
    /// <summary>
    /// Adds tcp server as <see cref="IServer"/>.
    /// </summary>
    /// <param name="serviceCollection">The service collection.</param>
    /// <param name="bindResolver">A resovler used for resolving the ip and port to bind to.</param>
    /// <returns>The same service collection.</returns>
    public static IServiceCollection AddTcpServer
    (
        this IServiceCollection serviceCollection,
        Func<IServiceProvider, (IPAddress BindAddress, int Port)> bindResolver
    )
    {
        return serviceCollection
            .AddSingleton<IServer>(p => p.GetRequiredService<TcpServer>())
            .AddSingleton<TcpServer>
            (
                p =>
                {
                    var resolved = bindResolver(p);
                    return new TcpServer(resolved.BindAddress, resolved.Port);
                }
            );
    }

    /// <summary>
    /// Adds tcp client as <see cref="IClient"/>.
    /// </summary>
    /// <param name="serviceCollection">The service collection.</param>
    /// <param name="connectionResolver">A resovler used for resolving the hostname and port to connect to.</param>
    /// <returns>The same service collection.</returns>
    public static IServiceCollection AddTcpClient
    (
        this IServiceCollection serviceCollection,
        Func<IServiceProvider, (string Hostname, int Port)> connectionResolver
    )
    {
        return serviceCollection
            .AddSingleton<IClient>(p => p.GetRequiredService<TcpClient>())
            .AddSingleton<TcpClient>
            (
                p =>
                {
                    var resolved = connectionResolver(p);
                    return new TcpClient(resolved.Hostname, resolved.Port);
                }
            );
    }
}
\ No newline at end of file

D src/Core/NosSmooth.Comms.Tcp/NosSmooth.Comms.Tcp.csproj => src/Core/NosSmooth.Comms.Tcp/NosSmooth.Comms.Tcp.csproj +0 -13
@@ 1,13 0,0 @@
<Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>
        <TargetFramework>net7.0</TargetFramework>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
    </PropertyGroup>

    <ItemGroup>
      <ProjectReference Include="..\NosSmooth.Comms.Abstractions\NosSmooth.Comms.Abstractions.csproj" />
    </ItemGroup>

</Project>

M src/Local/NosSmooth.Comms.Inject/DllMain.cs => src/Local/NosSmooth.Comms.Inject/DllMain.cs +0 -2
@@ 14,8 14,6 @@ using NosSmooth.Comms.Core.Extensions;
using NosSmooth.Comms.Data;
using NosSmooth.Comms.Inject.MessageResponders;
using NosSmooth.Comms.Inject.PacketResponders;
using NosSmooth.Comms.NamedPipes;
using NosSmooth.Comms.NamedPipes.Extensions;
using NosSmooth.Core.Extensions;
using NosSmooth.Extensions.SharedBinding.Extensions;
using NosSmooth.LocalClient.Extensions;

M src/Local/NosSmooth.Comms.Inject/MessageResponders/FocusResponder.cs => src/Local/NosSmooth.Comms.Inject/MessageResponders/FocusResponder.cs +1 -1
@@ 5,7 5,7 @@
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Comms.Data.Responders;
using NosSmooth.Comms.LocalData;
using NosSmooth.Comms.Inject.Messages;
using NosSmooth.LocalBinding;
using NosSmooth.LocalBinding.Hooks;
using NosSmooth.LocalBinding.Structs;

M src/Local/NosSmooth.Comms.Inject/MessageResponders/FollowResponder.cs => src/Local/NosSmooth.Comms.Inject/MessageResponders/FollowResponder.cs +1 -1
@@ 5,7 5,7 @@
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

using NosSmooth.Comms.Data.Responders;
using NosSmooth.Comms.LocalData;
using NosSmooth.Comms.Inject.Messages;
using NosSmooth.LocalBinding;
using NosSmooth.LocalBinding.Hooks;
using NosSmooth.LocalBinding.Structs;

R src/Local/NosSmooth.Comms.LocalData/FocusMessage.cs => src/Local/NosSmooth.Comms.Inject/Messages/FocusMessage.cs +1 -1
@@ 4,6 4,6 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

namespace NosSmooth.Comms.LocalData;
namespace NosSmooth.Comms.Inject.Messages;

public record FocusMessage(long? EntityId);
\ No newline at end of file

R src/Local/NosSmooth.Comms.LocalData/FollowMessage.cs => src/Local/NosSmooth.Comms.Inject/Messages/FollowMessage.cs +1 -1
@@ 4,6 4,6 @@
//  Copyright (c) František Boháček. All rights reserved.
//  Licensed under the MIT license. See LICENSE file in the project root for full license information.

namespace NosSmooth.Comms.LocalData;
namespace NosSmooth.Comms.Inject.Messages;

public record FollowMessage(long? EntityId);
\ No newline at end of file

M src/Local/NosSmooth.Comms.Inject/NosSmooth.Comms.Inject.csproj => src/Local/NosSmooth.Comms.Inject/NosSmooth.Comms.Inject.csproj +0 -2
@@ 19,8 19,6 @@
    <ItemGroup>
      <ProjectReference Include="..\..\Core\NosSmooth.Comms.Abstractions\NosSmooth.Comms.Abstractions.csproj" />
      <ProjectReference Include="..\..\Core\NosSmooth.Comms.Core\NosSmooth.Comms.Core.csproj" />
      <ProjectReference Include="..\..\Core\NosSmooth.Comms.NamedPipes\NosSmooth.Comms.NamedPipes.csproj" />
      <ProjectReference Include="..\NosSmooth.Comms.LocalData\NosSmooth.Comms.LocalData.csproj" />
    </ItemGroup>

</Project>

M src/Local/NosSmooth.Comms.Local/CommsInjector.cs => src/Local/NosSmooth.Comms.Local/CommsInjector.cs +1 -1
@@ 7,8 7,8 @@
using System.Diagnostics;
using Microsoft.Extensions.DependencyInjection;
using NosSmooth.Comms.Core;
using NosSmooth.Comms.Core.NamedPipes;
using NosSmooth.Comms.Data;
using NosSmooth.Comms.NamedPipes;
using NosSmooth.Injector;
using NosSmooth.LocalBinding;
using NosSmooth.LocalBinding.Options;

M src/Local/NosSmooth.Comms.Local/NosSmooth.Comms.Local.csproj => src/Local/NosSmooth.Comms.Local/NosSmooth.Comms.Local.csproj +1 -1
@@ 17,7 17,7 @@

    <ItemGroup>
      <ProjectReference Include="..\..\Core\NosSmooth.Comms.Core\NosSmooth.Comms.Core.csproj" />
      <ProjectReference Include="..\..\Core\NosSmooth.Comms.NamedPipes\NosSmooth.Comms.NamedPipes.csproj" />
      <ProjectReference Include="..\NosSmooth.Comms.Inject\NosSmooth.Comms.Inject.csproj" />
    </ItemGroup>

    <ItemGroup>

D src/Local/NosSmooth.Comms.LocalData/NosSmooth.Comms.LocalData.csproj => src/Local/NosSmooth.Comms.LocalData/NosSmooth.Comms.LocalData.csproj +0 -9
@@ 1,9 0,0 @@
<Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup>
        <TargetFramework>net7.0</TargetFramework>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
    </PropertyGroup>

</Project>

M src/Samples/ConsolePacketLogger/ConsolePacketLogger.csproj => src/Samples/ConsolePacketLogger/ConsolePacketLogger.csproj +1 -4
@@ 6,6 6,7 @@
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
        <ApplicationManifest>app.manifest</ApplicationManifest>
        <IsPackable>false</IsPackable>
    </PropertyGroup>

    <ItemGroup>


@@ 18,11 19,7 @@

    <ItemGroup>
      <ProjectReference Include="..\..\Core\NosSmooth.Comms.Abstractions\NosSmooth.Comms.Abstractions.csproj" />
      <ProjectReference Include="..\..\Core\NosSmooth.Comms.Core\NosSmooth.Comms.Core.csproj" />
      <ProjectReference Include="..\..\Core\NosSmooth.Comms.NamedPipes\NosSmooth.Comms.NamedPipes.csproj" />
      <ProjectReference Include="..\..\Core\NosSmooth.Comms.Tcp\NosSmooth.Comms.Tcp.csproj" />
      <ProjectReference Include="..\..\Local\NosSmooth.Comms.Inject\NosSmooth.Comms.Inject.csproj" />
      <ProjectReference Include="..\..\Local\NosSmooth.Comms.LocalData\NosSmooth.Comms.LocalData.csproj" />
      <ProjectReference Include="..\..\Local\NosSmooth.Comms.Local\NosSmooth.Comms.Local.csproj" />
    </ItemGroup>


Do not follow this link