ソースを参照

1.增加RTMP测试

2.增加HTTPFLV测试
3.增加统一版本号控制
old
smallchi 5年前
コミット
aa78a01105
15個のファイルの変更388行の追加83行の削除
  1. +16
    -1
      src/JT1078.DotNetty.Core/JT1078.DotNetty.Core.csproj
  2. +11
    -1
      src/JT1078.DotNetty.Tcp/JT1078.DotNetty.Tcp.csproj
  3. +53
    -0
      src/JT1078.DotNetty.TestHosting/HTTPFLV/FFMPEGHTTPFLVPHostedService.cs
  4. +94
    -0
      src/JT1078.DotNetty.TestHosting/HTTPFLV/FFMPEGHTTPFLVPipingService.cs
  5. +1
    -1
      src/JT1078.DotNetty.TestHosting/Handlers/JT1078TcpMessageHandlers.cs
  6. +3
    -0
      src/JT1078.DotNetty.TestHosting/JT1078.DotNetty.TestHosting.csproj
  7. +31
    -6
      src/JT1078.DotNetty.TestHosting/JT1078DataService.cs
  8. +7
    -41
      src/JT1078.DotNetty.TestHosting/JT1078WebSocketPushHostedService.cs
  9. +12
    -10
      src/JT1078.DotNetty.TestHosting/Program.cs
  10. +54
    -0
      src/JT1078.DotNetty.TestHosting/RTMP/FFMPEGRTMPHostedService.cs
  11. +71
    -0
      src/JT1078.DotNetty.TestHosting/RTMP/FFMPEGRTMPPipingService.cs
  12. +15
    -2
      src/JT1078.DotNetty.Udp/JT1078.DotNetty.Udp.csproj
  13. +15
    -2
      src/JT1078.DotNetty.WebSocket/JT1078.DotNetty.WebSocket.csproj
  14. +0
    -19
      src/SharedProperties.props
  15. +5
    -0
      src/Version.props

+ 16
- 1
src/JT1078.DotNetty.Core/JT1078.DotNetty.Core.csproj ファイルの表示

@@ -1,11 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\SharedProperties.props" />
<Import Project="..\Version.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<LangVersion>7.3</LangVersion>
<Copyright>Copyright 2019.</Copyright>
<Authors>SmallChi(Koike)</Authors>
<PackageId>JT1078.DotNetty.Core</PackageId>
<Product>JT1078.DotNetty.Core</Product>
<Description>基于DotNetty实现的JT1078DotNetty的核心库</Description>
<PackageReleaseNotes>基于DotNetty实现的JT1078DotNetty的核心库</PackageReleaseNotes>
<RepositoryUrl>https://github.com/SmallChi/JT1078DotNetty</RepositoryUrl>
<PackageProjectUrl>https://github.com/SmallChi/JT1078DotNetty</PackageProjectUrl>
<licenseUrl>https://github.com/SmallChi/JT1078DotNetty/blob/master/LICENSE</licenseUrl>
<license>https://github.com/SmallChi/JT1078DotNetty/blob/master/LICENSE</license>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
<SignAssembly>false</SignAssembly>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
</PropertyGroup>

<ItemGroup>
@@ -21,6 +32,10 @@
<PackageReference Include="Microsoft.Extensions.Options" Version="2.2.0" />
</ItemGroup>

<ItemGroup>
<None Include="..\..\LICENSE" Pack="true" PackagePath="" />
</ItemGroup>
<ItemGroup>
<Folder Include="Properties\" />
</ItemGroup>


+ 11
- 1
src/JT1078.DotNetty.Tcp/JT1078.DotNetty.Tcp.csproj ファイルの表示

@@ -1,7 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\SharedProperties.props" />
<Import Project="..\Version.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<LangVersion>7.3</LangVersion>
<Copyright>Copyright 2019.</Copyright>
<Authors>SmallChi(Koike)</Authors>
<PackageId>JT1078.DotNetty.Tcp</PackageId>
<Product>JT1078.DotNetty.Tcp</Product>
<Description>基于DotNetty实现的JT1078DotNetty的Tcp服务</Description>
@@ -10,12 +13,19 @@
<PackageProjectUrl>https://github.com/SmallChi/JT1078DotNetty</PackageProjectUrl>
<licenseUrl>https://github.com/SmallChi/JT1078DotNetty/blob/master/LICENSE</licenseUrl>
<license>https://github.com/SmallChi/JT1078DotNetty/blob/master/LICENSE</license>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
<SignAssembly>false</SignAssembly>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
</PropertyGroup>

<ItemGroup>
<ProjectReference Include="..\JT1078.DotNetty.Core\JT1078.DotNetty.Core.csproj" />
</ItemGroup>

<ItemGroup>
<None Include="..\..\LICENSE" Pack="true" PackagePath="" />
</ItemGroup>

<ItemGroup>
<PackageReference Include="DotNetty.Handlers" Version="0.6.0" />


+ 53
- 0
src/JT1078.DotNetty.TestHosting/HTTPFLV/FFMPEGHTTPFLVPHostedService.cs ファイルの表示

@@ -0,0 +1,53 @@
using DotNetty.Buffers;
using DotNetty.Codecs.Http.WebSockets;
using JT1078.DotNetty.Core.Session;
using Microsoft.Extensions.Hosting;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using JT1078.Protocol;
using System.Collections.Concurrent;
using JT1078.Protocol.Enums;

namespace JT1078.DotNetty.TestHosting
{
class FFMPEGHTTPFLVPHostedService : IHostedService
{
private readonly JT1078DataService jT1078DataService;
private readonly FFMPEGHTTPFLVPipingService fFMPEGHTTPFLVPipingService;
public FFMPEGHTTPFLVPHostedService(
JT1078DataService jT1078DataService)
{
this.jT1078DataService = jT1078DataService;
fFMPEGHTTPFLVPipingService = new FFMPEGHTTPFLVPipingService("demo2");
}
public Task StartAsync(CancellationToken cancellationToken)
{
Task.Run(() =>
{
try
{
foreach (var item in jT1078DataService.DataBlockingCollection.GetConsumingEnumerable(cancellationToken))
{
fFMPEGHTTPFLVPipingService.Wirte(item);
}
}
catch(Exception ex)
{
Console.WriteLine(ex);
}
}, cancellationToken);
return Task.CompletedTask;
}

public Task StopAsync(CancellationToken cancellationToken)
{
return Task.CompletedTask;
}
}
}

+ 94
- 0
src/JT1078.DotNetty.TestHosting/HTTPFLV/FFMPEGHTTPFLVPipingService.cs ファイルの表示

@@ -0,0 +1,94 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.IO.Pipes;
using System.Text;
using System.Threading.Tasks;

namespace JT1078.DotNetty.TestHosting
{

public class FFMPEGHTTPFLVPipingService : IDisposable
{
private readonly Process process;
private readonly NamedPipeServerStream pipeServer;
private readonly NamedPipeServerStream pipeServerOut;
public FFMPEGHTTPFLVPipingService(string pipeName)
{
pipeServer = new NamedPipeServerStream(pipeName, PipeDirection.Out, 1, PipeTransmissionMode.Byte, PipeOptions.Asynchronous);
pipeServerOut = new NamedPipeServerStream(pipeName+ "out", PipeDirection.In, 1, PipeTransmissionMode.Byte, PipeOptions.Asynchronous);
process = new Process
{
StartInfo =
{
FileName = @"C:\ffmpeg\bin\ffmpeg.exe",
Arguments = $@"-i \\.\pipe\{pipeName} -c copy -f flv -y \\.\pipe\{pipeName}out",
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardError = true
}
};
process.Start();
process.ErrorDataReceived += ErrorDataReceived;
pipeServer.WaitForConnection();
Task.Run(() =>
{
while (true)
{
try
{
if (pipeServerOut.IsConnected)
{
if (pipeServerOut.CanRead)
{
var value = pipeServerOut.ReadByte();
Console.WriteLine(value);
}
}
else
{
pipeServerOut.WaitForConnectionAsync();
}

}
catch (Exception ex)
{
Console.WriteLine(ex);
}
}
});
}

public void ErrorDataReceived(object sender, DataReceivedEventArgs e)
{
Console.WriteLine(e.Data);
}
public void OutputDataReceived(object sender, DataReceivedEventArgs e)
{
Console.WriteLine(e.Data);
}

public void Wirte(byte[] buffer)
{
if (pipeServer.IsConnected)
pipeServer.WriteAsync(buffer);
}

public void Dispose()
{
try
{
process.WaitForExit();
pipeServer.Flush();
}
catch
{

}
process.Dispose();
pipeServer.Dispose();
}
}
}

+ 1
- 1
src/JT1078.DotNetty.TestHosting/Handlers/JT1078TcpMessageHandlers.cs ファイルの表示

@@ -29,7 +29,7 @@ namespace JT1078.DotNetty.TestHosting.Handlers
{
logger.LogInformation(JsonConvert.SerializeObject(request.Package));
hexLogger.LogInformation($"{request.Package.SIM},{request.Package.SN},{request.Package.LogicChannelNumber},{request.Package.Label3.DataType.ToString()},{request.Package.Label3.SubpackageType.ToString()},{ByteBufferUtil.HexDump(request.Src)}");
jT1078DataService.DataBlockingCollection.TryAdd(request.Package);
jT1078DataService.DataBlockingCollection.TryAdd(request.Src);
return Task.FromResult<JT1078Response>(default);
}
}


+ 3
- 0
src/JT1078.DotNetty.TestHosting/JT1078.DotNetty.TestHosting.csproj ファイルの表示

@@ -24,6 +24,9 @@
<None Update="2019-07-12.log">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="2019-08-27-1.log">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Update="appsettings.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>


+ 31
- 6
src/JT1078.DotNetty.TestHosting/JT1078DataService.cs ファイルの表示

@@ -1,8 +1,10 @@
using JT1078.Protocol;
using JT1078.Protocol.Enums;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
@@ -11,12 +13,14 @@ namespace JT1078.DotNetty.TestHosting
{
public class JT1078DataService
{
public BlockingCollection<JT1078Package> DataBlockingCollection { get; }
public BlockingCollection<byte[]> DataBlockingCollection { get; }

private readonly ConcurrentDictionary<string, byte[]> SubcontractKey;
public JT1078DataService()
{
DataBlockingCollection = new BlockingCollection<JT1078Package>(60000);
var lines = File.ReadAllLines(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "2019-07-15.log"));
DataBlockingCollection = new BlockingCollection<byte[]>(60000);
SubcontractKey = new ConcurrentDictionary<string, byte[]>(StringComparer.OrdinalIgnoreCase);
var lines = File.ReadAllLines(Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "2019-08-27-1.log"));
Task.Run(() =>
{
while (true)
@@ -25,9 +29,30 @@ namespace JT1078.DotNetty.TestHosting
{
try
{
var package = JT1078Serializer.Deserialize(lines[i].Split(',')[6].ToHexBytes());
DataBlockingCollection.Add(package);
Thread.Sleep(300);
var item = JT1078Serializer.Deserialize(lines[i].Split(',')[6].ToHexBytes());
if (item.Label3.SubpackageType == JT1078SubPackageType.分包处理时的第一个包)
{
SubcontractKey.TryRemove(item.SIM, out _);
SubcontractKey.TryAdd(item.SIM, item.Bodies);
}
else if (item.Label3.SubpackageType == JT1078SubPackageType.分包处理时的中间包)
{
if (SubcontractKey.TryGetValue(item.SIM, out var buffer))
{
SubcontractKey[item.SIM] = buffer.Concat(item.Bodies).ToArray();
}
}
else if (item.Label3.SubpackageType == JT1078SubPackageType.分包处理时的最后一个包)
{
if (SubcontractKey.TryGetValue(item.SIM, out var buffer))
{
DataBlockingCollection.Add(buffer.Concat(item.Bodies).ToArray());
}
}
else
{
DataBlockingCollection.Add(item.Bodies);
}
}
catch
{


+ 7
- 41
src/JT1078.DotNetty.TestHosting/JT1078WebSocketPushHostedService.cs ファイルの表示

@@ -20,6 +20,7 @@ namespace JT1078.DotNetty.TestHosting
JT1078WebSocketSessionManager jT1078WebSocketSessionManager;
private readonly JT1078DataService jT1078DataService;
private readonly ConcurrentDictionary<string, byte[]> SubcontractKey;

public JT1078WebSocketPushHostedService(
JT1078DataService jT1078DataService,
JT1078WebSocketSessionManager jT1078WebSocketSessionManager)
@@ -32,59 +33,24 @@ namespace JT1078.DotNetty.TestHosting
{
Task.Run(() =>
{
while (true)
while (!cancellationToken.IsCancellationRequested)
{
try
{
foreach (var item in jT1078DataService.DataBlockingCollection.GetConsumingEnumerable())
foreach (var item in jT1078DataService.DataBlockingCollection.GetConsumingEnumerable(cancellationToken))
{
//if (jT1078WebSocketSessionManager.GetAll().Count() > 0)
//{
// Parallel.ForEach(jT1078WebSocketSessionManager.GetAll(), new ParallelOptions { MaxDegreeOfParallelism = 5 }, session =>
// {
// //if (item.Label3.SubpackageType == JT1078SubPackageType.分包处理时的第一个包)
// //{
// // SubcontractKey.TryRemove(item.SIM, out _);

// // SubcontractKey.TryAdd(item.SIM, item.Bodies);
// //}
// //else if (item.Label3.SubpackageType == JT1078SubPackageType.分包处理时的中间包)
// //{
// // if (SubcontractKey.TryGetValue(item.SIM, out var buffer))
// // {
// // SubcontractKey[item.SIM] = buffer.Concat(item.Bodies).ToArray();
// // }
// //}
// //else if (item.Label3.SubpackageType == JT1078SubPackageType.分包处理时的最后一个包)
// //{
// // if (SubcontractKey.TryGetValue(item.SIM, out var buffer))
// // {
// // session.Channel.WriteAndFlushAsync(new BinaryWebSocketFrame(Unpooled.WrappedBuffer(buffer.Concat(item.Bodies).ToArray())));
// // }
// //}
// //else
// //{
// session.Channel.WriteAndFlushAsync(new BinaryWebSocketFrame(Unpooled.WrappedBuffer(item.Bodies)));
// // }
// });
//}

if (jT1078WebSocketSessionManager.GetAll().Count() > 0)
Parallel.ForEach(jT1078WebSocketSessionManager.GetAll(), new ParallelOptions { MaxDegreeOfParallelism = 5 }, session =>
{
Parallel.ForEach(jT1078WebSocketSessionManager.GetAll(), new ParallelOptions { MaxDegreeOfParallelism = 5 }, session =>
{
session.Channel.WriteAndFlushAsync(new BinaryWebSocketFrame(Unpooled.WrappedBuffer(item.Bodies)));
});
}
session.Channel.WriteAndFlushAsync(new BinaryWebSocketFrame(Unpooled.WrappedBuffer(item)));
});
}
}
catch
{

}
Thread.Sleep(10000);
}
});
}, cancellationToken);
return Task.CompletedTask;
}



+ 12
- 10
src/JT1078.DotNetty.TestHosting/Program.cs ファイルの表示

@@ -58,17 +58,19 @@ namespace JT1078.DotNetty.TestHosting
services.AddSingleton<ILoggerFactory, LoggerFactory>();
services.AddSingleton(typeof(ILogger<>), typeof(Logger<>));
services.AddSingleton<JT1078DataService>();
services.AddJT1078Core(hostContext.Configuration)
.AddJT1078TcpHost()
.Replace<JT1078TcpMessageHandlers>()
.Builder()
//.AddJT1078UdpHost()
//.Replace<JT1078UdpMessageHandlers>()
//.Builder()
.AddJT1078WebSocketHost()
services.AddJT1078Core(hostContext.Configuration);
// .AddJT1078TcpHost()
// .Replace<JT1078TcpMessageHandlers>()
// .Builder()
// .AddJT1078UdpHost()
// .Replace<JT1078UdpMessageHandlers>()
// .Builder()
// .AddJT1078WebSocketHost()
// .Replace()
.Builder();
services.AddHostedService<JT1078WebSocketPushHostedService>();
// .Builder();
//services.AddHostedService<JT1078WebSocketPushHostedService>();
//services.AddHostedService<FFMPEGRTMPHostedService>();
services.AddHostedService<FFMPEGHTTPFLVPHostedService>();
});

await serverHostBuilder.RunConsoleAsync();


+ 54
- 0
src/JT1078.DotNetty.TestHosting/RTMP/FFMPEGRTMPHostedService.cs ファイルの表示

@@ -0,0 +1,54 @@
using DotNetty.Buffers;
using DotNetty.Codecs.Http.WebSockets;
using JT1078.DotNetty.Core.Session;
using Microsoft.Extensions.Hosting;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using JT1078.Protocol;
using System.Collections.Concurrent;
using JT1078.Protocol.Enums;

namespace JT1078.DotNetty.TestHosting
{
class FFMPEGRTMPHostedService : IHostedService
{
private readonly JT1078DataService jT1078DataService;
private readonly FFMPEGRTMPPipingService fFMPEGPipingService;
public FFMPEGRTMPHostedService(
JT1078DataService jT1078DataService)
{
this.jT1078DataService = jT1078DataService;
fFMPEGPipingService = new FFMPEGRTMPPipingService("demo1");
}
public Task StartAsync(CancellationToken cancellationToken)
{
Task.Run(() =>
{

try
{
foreach (var item in jT1078DataService.DataBlockingCollection.GetConsumingEnumerable(cancellationToken))
{
fFMPEGPipingService.Wirte(item);
}
}
catch(Exception ex)
{
Console.WriteLine(ex);
}
}, cancellationToken);
return Task.CompletedTask;
}

public Task StopAsync(CancellationToken cancellationToken)
{
return Task.CompletedTask;
}
}
}

+ 71
- 0
src/JT1078.DotNetty.TestHosting/RTMP/FFMPEGRTMPPipingService.cs ファイルの表示

@@ -0,0 +1,71 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.IO.Pipes;
using System.Text;

namespace JT1078.DotNetty.TestHosting
{
/// <summary>
/// 1.部署 RTMP 服务器 https://github.com/a1q123456/Harmonic
/// 2.使用ffplay播放器查看 ./ffplay rtmp://127.0.0.1/living/streamName
/// ref:
/// https://stackoverflow.com/questions/32157774/ffmpeg-output-pipeing-to-named-windows-pipe
/// https://mathewsachin.github.io/blog/2017/07/28/ffmpeg-pipe-csharp.html
/// https://csharp.hotexamples.com/examples/-/NamedPipeServerStream/-/php-namedpipeserverstream-class-examples.html
///
/// ffmpeg pipe作为客户端
/// NamedPipeServerStream作为服务端
/// </summary>
public class FFMPEGRTMPPipingService : IDisposable
{
private readonly Process process;
private readonly NamedPipeServerStream pipeServer;
public FFMPEGRTMPPipingService(string pipeName)
{
pipeServer = new NamedPipeServerStream(pipeName, PipeDirection.Out, 1, PipeTransmissionMode.Byte, PipeOptions.WriteThrough, 10000, 10000);
string rtmp = "rtmp://127.0.0.1/living/streamName";
process = new Process
{
StartInfo =
{
FileName = @"C:\ffmpeg\bin\ffmpeg.exe",
Arguments = $@"-i \\.\pipe\{pipeName} -c copy -f flv {rtmp}",
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardError = true
}
};
process.Start();
process.ErrorDataReceived += ErrorDataReceived;
pipeServer.WaitForConnection();
}

public void ErrorDataReceived(object sender, DataReceivedEventArgs e)
{
Console.WriteLine(e.Data);
}

public void Wirte(byte[] buffer)
{
if (pipeServer.IsConnected)
pipeServer.WriteAsync(buffer);
}

public void Dispose()
{
try
{
process.Kill();
pipeServer.Flush();
}
catch
{

}
process.Dispose();
pipeServer.Dispose();
}
}
}

+ 15
- 2
src/JT1078.DotNetty.Udp/JT1078.DotNetty.Udp.csproj ファイルの表示

@@ -1,15 +1,28 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\SharedProperties.props" />
<Import Project="..\Version.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<LangVersion>7.3</LangVersion>
<Copyright>Copyright 2019.</Copyright>
<Authors>SmallChi(Koike)</Authors>
<PackageId>JT1078.DotNetty.Udp</PackageId>
<Product>JT1078.DotNetty.Udp</Product>
<Description>基于DotNetty实现的JT1078DotNetty的Udp服务</Description>
<PackageReleaseNotes>基于DotNetty实现的JT1078DotNetty的Udp服务</PackageReleaseNotes>
<RepositoryUrl>https://github.com/SmallChi/JT1078DotNetty</RepositoryUrl>
<PackageProjectUrl>https://github.com/SmallChi/JT1078DotNetty</PackageProjectUrl>
<licenseUrl>https://github.com/SmallChi/JT1078DotNetty/blob/master/LICENSE</licenseUrl>
<license>https://github.com/SmallChi/JT1078DotNetty/blob/master/LICENSE</license>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
<SignAssembly>false</SignAssembly>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
</PropertyGroup>

<ItemGroup>
<ProjectReference Include="..\JT1078.DotNetty.Core\JT1078.DotNetty.Core.csproj" />
</ItemGroup>

<ItemGroup>
<None Include="..\..\LICENSE" Pack="true" PackagePath="" />
</ItemGroup>
</Project>

+ 15
- 2
src/JT1078.DotNetty.WebSocket/JT1078.DotNetty.WebSocket.csproj ファイルの表示

@@ -1,11 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\SharedProperties.props" />
<Import Project="..\Version.props" />
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<LangVersion>7.3</LangVersion>
<Copyright>Copyright 2019.</Copyright>
<Authors>SmallChi(Koike)</Authors>
<PackageId>JT1078.DotNetty.WebSocket</PackageId>
<Product>JT1078.DotNetty.WebSocket</Product>
<Description>基于DotNetty实现的JT1078DotNetty的WebSocket服务</Description>
<PackageReleaseNotes>基于DotNetty实现的JT1078DotNetty的WebSocket服务</PackageReleaseNotes>
<RepositoryUrl>https://github.com/SmallChi/JT1078DotNetty</RepositoryUrl>
<PackageProjectUrl>https://github.com/SmallChi/JT1078DotNetty</PackageProjectUrl>
<licenseUrl>https://github.com/SmallChi/JT1078DotNetty/blob/master/LICENSE</licenseUrl>
<license>https://github.com/SmallChi/JT1078DotNetty/blob/master/LICENSE</license>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
<SignAssembly>false</SignAssembly>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
</PropertyGroup>

<ItemGroup>
@@ -18,5 +29,7 @@
<ItemGroup>
<ProjectReference Include="..\JT1078.DotNetty.Core\JT1078.DotNetty.Core.csproj" />
</ItemGroup>

<ItemGroup>
<None Include="..\..\LICENSE" Pack="true" PackagePath="" />
</ItemGroup>
</Project>

+ 0
- 19
src/SharedProperties.props ファイルの表示

@@ -1,19 +0,0 @@
<Project>
<PropertyGroup>
<LangVersion>7.3</LangVersion>
<Copyright>Copyright 2019.</Copyright>
<Authors>SmallChi(Koike)</Authors>
<RepositoryUrl>https://github.com/SmallChi/JT1078DotNetty</RepositoryUrl>
<PackageProjectUrl>https://github.com/SmallChi/JT1078DotNetty</PackageProjectUrl>
<licenseUrl>https://github.com/SmallChi/JT1078DotNetty/blob/master/LICENSE</licenseUrl>
<license>https://github.com/SmallChi/JT1078DotNetty/blob/master/LICENSE</license>
<GeneratePackageOnBuild>false</GeneratePackageOnBuild>
<Version>1.0.0-preview2</Version>
<SignAssembly>false</SignAssembly>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
</PropertyGroup>
<ItemGroup>
<None Include="..\..\LICENSE" Pack="true" PackagePath="" />
</ItemGroup>
</Project>

+ 5
- 0
src/Version.props ファイルの表示

@@ -0,0 +1,5 @@
<Project>
<PropertyGroup>
<JT1078DotNettyPackageVersion>1.0.0-preview2</JT1078DotNettyPackageVersion>
</PropertyGroup>
</Project>

読み込み中…
キャンセル
保存