create server

This commit is contained in:
YangHua 2024-02-18 14:33:56 +08:00
commit d2aa97dda0
32 changed files with 795 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
/.vs
/GameServer.sln

View File

@ -0,0 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
</Project>

145
GameServer/Program.cs Normal file
View File

@ -0,0 +1,145 @@
using System;
using System.Collections.Concurrent;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
namespace GameServer
{
internal class Program
{
private static ConcurrentDictionary<string, TcpClient> clients = new ConcurrentDictionary<string, TcpClient>();
static async Task Main(string[] args)
{
await RunServer();
Console.ReadKey();
}
static async Task RunServer()
{
int port = 12345;
TcpListener listener = new TcpListener(IPAddress.Any, port);
listener.Start();
Console.WriteLine($"Server listening on port {port}");
while (true)
{
TcpClient client = await listener.AcceptTcpClientAsync();
_ = HandleClientAsync(client);
}
}
static async Task HandleClientAsync(TcpClient client)
{
using (NetworkStream stream = client.GetStream())
{
string clientAddress = client.Client.RemoteEndPoint.ToString();
clients.TryAdd(clientAddress, client);
var user = User.Create(client, stream);
Console.WriteLine($"Client connected: {clientAddress}");
byte[] buffer = new byte[4096];
byte[] response = null;
int bytesRead;
while ((bytesRead = await stream.ReadAsync(buffer, 0, buffer.Length)) > 0)
{
string data = Encoding.UTF8.GetString(buffer, 0, bytesRead);
//Console.WriteLine($"Received from {clientAddress}: {data}");
string[] commands = data.Split(" ");
if (commands.Length > 0)
{
switch (commands[0])
{
case "test":
Console.WriteLine($"测试 {commands[1]}");
break;
case "regist"://注册临时身份
user.Regist(commands[1]);
Console.WriteLine($"注册 {commands[1]}");
break;
case "getusers"://获取用户列表
response = Encoding.UTF8.GetBytes(string.Format("getusers {0}", User.GetUsers(user.userId)));
await stream.WriteAsync(response, 0, response.Length);
break;
case "createroom"://创建房间
Console.WriteLine($"创建房间 {commands[1]}");
var room = Room.Create(commands[1], user.userId);
response = Encoding.UTF8.GetBytes(string.Format("createroom {0},{1},{2}", room.roomId, room.roomname, room.creater));
await stream.WriteAsync(response, 0, response.Length);
break;
case "getrooms"://获取所有房间
response = Encoding.UTF8.GetBytes(string.Format("getrooms {0}", Room.GetRooms()));
await stream.WriteAsync(response, 0, response.Length);
break;
case "getownrooms"://获取自己创建的房间
response = Encoding.UTF8.GetBytes(string.Format("getownrooms {0}", Room.GetRooms(user.userId)));
await stream.WriteAsync(response, 0, response.Length);
break;
case "joinroom"://加入房间
string join = Room.JoinRoom(user, ulong.Parse(commands[1]));
if (!string.IsNullOrWhiteSpace(join))
{
response = Encoding.UTF8.GetBytes(string.Format("joinroom {0}", join));
await stream.WriteAsync(response, 0, response.Length);
}
break;
case "getroomusers"://获取所在房间的用户
response = Encoding.UTF8.GetBytes(string.Format("getroomusers {0}", User.GetUsers(user.userId, user.roomId)));
await stream.WriteAsync(response, 0, response.Length);
break;
case "joins"://批量加入房间
List<User> users = Room.BatchJoinRoom(ulong.Parse(commands[1]));
for (int i = 0; i < users.Count; i++)
{
User.Send2User(users[i].userId, string.Format("send2user joins"));
}
//response = Encoding.UTF8.GetBytes(string.Format("joins {0}", joins));
//await stream.WriteAsync(response, 0, response.Length);
break;
case "leaveroom"://离开房间
string leave = Room.LeaveRoom(user);
if (!string.IsNullOrWhiteSpace(leave))
{
response = Encoding.UTF8.GetBytes(string.Format("leaveroom {0}", leave));
await stream.WriteAsync(response, 0, response.Length);
}
Console.WriteLine($"离开房间 {leave}");
break;
case "closeroom"://关闭房间
string close = Room.CloseRoom(ulong.Parse(commands[1]));
if (!string.IsNullOrWhiteSpace(close))
{
response = Encoding.UTF8.GetBytes(string.Format("closeroom {0}", close));
await stream.WriteAsync(response, 0, response.Length);
}
break;
case "send2user"://对用户说
User.Send2User(ulong.Parse(commands[1]), string.Format("send2user {0}", commands[2]));
break;
case "send2room"://对房间说
User.Send2Room(user.userId, user.roomId, string.Format("send2room {0}", commands[1]));
Console.WriteLine($"send2room {commands[1]}");
break;
case "send2world"://对世界说
User.Send2World(user, string.Format("send2world {0}", commands[1]));
break;
case "player"://对player说
User.Send2Player(user.userId, user.roomId, string.Format("player {0}", commands[1]));
break;
}
}
}
clients.TryRemove(clientAddress, out _);
user.OffLine();
Console.WriteLine($"Client disconnected: {clientAddress}");
}
client.Close();
}
}
}

176
GameServer/Room.cs Normal file
View File

@ -0,0 +1,176 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace GameServer
{
/// <summary>
/// 房间
/// </summary>
public class Room
{
#region
private static List<Room> rooms = new List<Room>();
//public static ulong counter = 1;
#endregion
/// <summary>
/// 房间ID
/// </summary>
public ulong roomId = 0;
/// <summary>
/// 房间名称
/// </summary>
public string roomname = "";
/// <summary>
/// 创建人
/// </summary>
public ulong creater = 0;
/// <summary>
/// 房间用户
/// </summary>
public List<User> users = new List<User>();
/// <summary>
/// 构造函数
/// </summary>
/// <param name="_roomname">房间名称</param>
/// <param name="_creater">创建人ID</param>
public Room(string _roomname, ulong _creater)
{
roomId = ulong.Parse(_roomname);
roomname = _roomname;
creater = _creater;
}
/// <summary>
/// 创建房间
/// </summary>
/// <param name="_roomname">房间名称</param>
/// <param name="_creater">创建人ID</param>
/// <returns></returns>
public static Room Create(string _roomname, ulong _creater)
{
var room = new Room(_roomname, _creater);
rooms.Add(room);
return room;
}
/// <summary>
/// 获取房间列表
/// </summary>
/// <param name="_creater">创建人</param>
/// <returns></returns>
public static string GetRooms(ulong _creater = 0)
{
StringBuilder sb = new StringBuilder();
rooms.ForEach(r =>
{
if (_creater == 0)
sb.AppendFormat("{0},{1},{2};", r.roomId, r.roomname, r.creater);
else
{
if (r.creater == _creater)
sb.AppendFormat("{0},{1},{2};", r.roomId, r.roomname, r.creater);
}
});
return sb.ToString().Trim(';');
}
/// <summary>
/// 加入房间
/// </summary>
/// <param name="_user"></param>
/// <param name="_roomId"></param>
/// <returns></returns>
public static string JoinRoom(User _user, ulong _roomId)
{
var room = rooms.Find(r => r.roomId == _roomId);
if (_user.roomId == 0)
{
if (room != null && !room.users.Contains(_user))
{
room.users.Add(_user);
_user.roomId = _roomId;
return string.Format("{0},{1},{2}", room.roomId, room.roomname, room.creater);
}
}
return "";
}
/// <summary>
/// 批量加入房间
/// </summary>
/// <param name="_roomId"></param>
/// <returns></returns>
public static List<User> BatchJoinRoom(ulong _roomId)
{
var room = rooms.Find(r => r.roomId == _roomId);
List<User> users = User.GetAllUsers();
if (room != null)
{
for (int i = 0; i < users.Count; i++)
{
int index = i;
if (users[index].roomId == 0)
{
if (!room.users.Contains(users[index]))
{
room.users.Add(users[index]);
users[index].roomId = _roomId;
}
}
}
return users;
}
return users;
}
/// <summary>
/// 离开房间
/// </summary>
/// <param name="_user">用户</param>
/// <returns></returns>
public static string LeaveRoom(User _user)
{
if (_user != null)
{
var room = rooms.Find(r => r.roomId == _user.roomId);
if (room != null)
{
room.users.Remove(_user);
_user.roomId = 0;
return string.Format("{0},{1},{2},{3}", room.roomId, room.roomname, room.creater,_user.userId);
}
}
return "";
}
/// <summary>
/// 关闭房间
/// </summary>
/// <param name="roomId">房间ID</param>
/// <returns></returns>
public static string CloseRoom(ulong _roomId)
{
var room = rooms.Find(r => r.roomId == _roomId);
if (room != null)
{
room.users.ForEach(u =>
{
//通知退出
u.Write(string.Format("roomclosed {0}", room.roomId));
u.roomId = 0;
});
room.users.Clear();
rooms.Remove(room);
//关闭房间通知
return string.Format("{0}", room.roomId);
}
return "";
}
}
}

174
GameServer/User.cs Normal file
View File

@ -0,0 +1,174 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Sockets;
using System.Text;
using System.Threading.Tasks;
namespace GameServer
{
public class User
{
#region
private static List<User> Users = new List<User>();
//private static ulong counter = 1;
#endregion
/// <summary>
/// 用户ID服务端
/// </summary>
public ulong userId = 0;
/// <summary>
/// 远程终端节点
/// </summary>
public string remoteId = "";
/// <summary>
/// 用户姓名
/// </summary>
public string username = "";
/// <summary>
/// 所在房间ID0表示不在任何房间
/// </summary>
public ulong roomId = 0;
public TcpClient client = null;
public NetworkStream stream = null;
/// <summary>
/// 用户构造函数
/// </summary>
/// <param name="_client">客户端</param>
/// <param name="_stream">流</param>
public User(TcpClient _client, NetworkStream _stream)
{
client = _client;
stream = _stream;
remoteId = client.Client.RemoteEndPoint.ToString();
Users.Add(this);
}
/// <summary>
/// 注册
/// </summary>
/// <param name="_username">名字</param>
public void Regist(string _username)
{
userId = ulong.Parse(_username);
username = _username;
byte[] response = Encoding.UTF8.GetBytes(string.Format("regist {0},{1},{2}", userId, username, roomId));
stream.WriteAsync(response, 0, response.Length);
}
/// <summary>
/// 写入
/// </summary>
/// <param name="msg"></param>
public void Write(string msg)
{
byte[] buffer = Encoding.UTF8.GetBytes(msg);
stream.WriteAsync(buffer, 0, buffer.Length);
}
public void OffLine()
{
Room.LeaveRoom(this);
Users.Remove(this);
}
/// <summary>
/// 创建用户
/// </summary>
/// <param name="_client"></param>
/// <returns></returns>
public static User Create(TcpClient _client, NetworkStream _stream)
{
return new User(_client, _stream);
}
/// <summary>
/// 获取用户列表
/// </summary>
/// <param name="except">除此之外(通常指自己)</param>
/// <returns></returns>
public static string GetUsers(ulong except, ulong roomId = 0)
{
StringBuilder sb = new StringBuilder();
var tempUsers = Users;
if (roomId != 0)
{
tempUsers = Users.Where(u => u.roomId.Equals(roomId)).ToList();
}
tempUsers.ForEach(u =>
{
if (u.userId != except)
{
sb.AppendFormat("{0},{1},{2};", u.userId, u.username, u.roomId);
}
});
return sb.ToString().Trim(';');
}
public static List<User> GetAllUsers()
{
return Users;
}
/// <summary>
/// 私发
/// </summary>
/// <param name="_userId"></param>
public static void Send2User(ulong _userId, string msg)
{
var user = Users.Find(u => u.userId == _userId);
if (user != null)
{
user.Write(msg);
}
}
/// <summary>
/// 房间
/// </summary>
/// <param name="_roomId"></param>
public static void Send2Room(ulong _userId, ulong _roomId, string msg)
{
var users = Users.Where(u => u.roomId == _roomId && u.userId != _userId).ToList();
users.ForEach(u =>
{
if (u.roomId != 0)
{
u.Write(msg);
}
});
}
/// <summary>
/// 房间
/// </summary>
/// <param name="_roomId"></param>
public static void Send2Player(ulong _userId, ulong _roomId, string msg)
{
var users = Users.Where(u => u.roomId == _roomId && u.userId != _userId).ToList();
users.ForEach(u =>
{
if (u.roomId != 0)
{
u.Write(String.Format("{0}", msg));
}
});
}
/// <summary>
/// 世界
/// </summary>
/// <param name="_user"></param>
public static void Send2World(User _user, string msg)
{
Users.ForEach((u) =>
{
if (u.userId != _user.userId)
u.Write(msg);
});
}
}
}

View File

@ -0,0 +1,23 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v6.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v6.0": {
"GameServer/1.0.0": {
"runtime": {
"GameServer.dll": {}
}
}
}
},
"libraries": {
"GameServer/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,9 @@
{
"runtimeOptions": {
"tfm": "net6.0",
"framework": {
"name": "Microsoft.NETCore.App",
"version": "6.0.0"
}
}
}

Binary file not shown.

View File

@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")]

View File

@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("GameServer")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("GameServer")]
[assembly: System.Reflection.AssemblyTitleAttribute("GameServer")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// 由 MSBuild WriteCodeFragment 类生成。

View File

@ -0,0 +1 @@
44d4d4a93eb4a5fc9bfbe81395c78f181b3d5a87

View File

@ -0,0 +1,10 @@
is_global = true
build_property.TargetFramework = net6.0
build_property.TargetPlatformMinVersion =
build_property.UsingMicrosoftNETSdkWeb =
build_property.ProjectTypeGuids =
build_property.InvariantGlobalization =
build_property.PlatformNeutralAssembly =
build_property._SupportedPlatformList = Linux,macOS,Windows
build_property.RootNamespace = GameServer
build_property.ProjectDir = E:\UnityProjects\LGZN\Unity2019.4.9\Net_ServerProjects\GameServer\GameServer\

View File

@ -0,0 +1,8 @@
// <auto-generated/>
global using global::System;
global using global::System.Collections.Generic;
global using global::System.IO;
global using global::System.Linq;
global using global::System.Net.Http;
global using global::System.Threading;
global using global::System.Threading.Tasks;

Binary file not shown.

View File

@ -0,0 +1 @@
63a566d08a7206798c242db0ecedff7a3abff278

View File

@ -0,0 +1,44 @@
D:\Projects\GameServer\GameServer\bin\Debug\net6.0\GameServer.exe
D:\Projects\GameServer\GameServer\bin\Debug\net6.0\GameServer.deps.json
D:\Projects\GameServer\GameServer\bin\Debug\net6.0\GameServer.runtimeconfig.json
D:\Projects\GameServer\GameServer\bin\Debug\net6.0\GameServer.dll
D:\Projects\GameServer\GameServer\bin\Debug\net6.0\GameServer.pdb
D:\Projects\GameServer\GameServer\obj\Debug\net6.0\GameServer.GeneratedMSBuildEditorConfig.editorconfig
D:\Projects\GameServer\GameServer\obj\Debug\net6.0\GameServer.AssemblyInfoInputs.cache
D:\Projects\GameServer\GameServer\obj\Debug\net6.0\GameServer.AssemblyInfo.cs
D:\Projects\GameServer\GameServer\obj\Debug\net6.0\GameServer.csproj.CoreCompileInputs.cache
D:\Projects\GameServer\GameServer\obj\Debug\net6.0\GameServer.dll
D:\Projects\GameServer\GameServer\obj\Debug\net6.0\refint\GameServer.dll
D:\Projects\GameServer\GameServer\obj\Debug\net6.0\GameServer.pdb
D:\Projects\GameServer\GameServer\obj\Debug\net6.0\GameServer.genruntimeconfig.cache
D:\Projects\GameServer\GameServer\obj\Debug\net6.0\ref\GameServer.dll
E:\UnityProjects\LGZN\Projects\GameServer\GameServer\bin\Debug\net6.0\GameServer.exe
E:\UnityProjects\LGZN\Projects\GameServer\GameServer\bin\Debug\net6.0\GameServer.deps.json
E:\UnityProjects\LGZN\Projects\GameServer\GameServer\bin\Debug\net6.0\GameServer.runtimeconfig.json
E:\UnityProjects\LGZN\Projects\GameServer\GameServer\bin\Debug\net6.0\GameServer.dll
E:\UnityProjects\LGZN\Projects\GameServer\GameServer\bin\Debug\net6.0\ref\GameServer.dll
E:\UnityProjects\LGZN\Projects\GameServer\GameServer\bin\Debug\net6.0\GameServer.pdb
E:\UnityProjects\LGZN\Projects\GameServer\GameServer\obj\Debug\net6.0\GameServer.csproj.AssemblyReference.cache
E:\UnityProjects\LGZN\Projects\GameServer\GameServer\obj\Debug\net6.0\GameServer.GeneratedMSBuildEditorConfig.editorconfig
E:\UnityProjects\LGZN\Projects\GameServer\GameServer\obj\Debug\net6.0\GameServer.AssemblyInfoInputs.cache
E:\UnityProjects\LGZN\Projects\GameServer\GameServer\obj\Debug\net6.0\GameServer.AssemblyInfo.cs
E:\UnityProjects\LGZN\Projects\GameServer\GameServer\obj\Debug\net6.0\GameServer.csproj.CoreCompileInputs.cache
E:\UnityProjects\LGZN\Projects\GameServer\GameServer\obj\Debug\net6.0\GameServer.dll
E:\UnityProjects\LGZN\Projects\GameServer\GameServer\obj\Debug\net6.0\ref\GameServer.dll
E:\UnityProjects\LGZN\Projects\GameServer\GameServer\obj\Debug\net6.0\GameServer.pdb
E:\UnityProjects\LGZN\Projects\GameServer\GameServer\obj\Debug\net6.0\GameServer.genruntimeconfig.cache
E:\UnityProjects\LGZN\Unity2019.4.9\Net_ServerProjects\GameServer\GameServer\bin\Debug\net6.0\GameServer.exe
E:\UnityProjects\LGZN\Unity2019.4.9\Net_ServerProjects\GameServer\GameServer\bin\Debug\net6.0\GameServer.deps.json
E:\UnityProjects\LGZN\Unity2019.4.9\Net_ServerProjects\GameServer\GameServer\bin\Debug\net6.0\GameServer.runtimeconfig.json
E:\UnityProjects\LGZN\Unity2019.4.9\Net_ServerProjects\GameServer\GameServer\bin\Debug\net6.0\GameServer.dll
E:\UnityProjects\LGZN\Unity2019.4.9\Net_ServerProjects\GameServer\GameServer\bin\Debug\net6.0\ref\GameServer.dll
E:\UnityProjects\LGZN\Unity2019.4.9\Net_ServerProjects\GameServer\GameServer\bin\Debug\net6.0\GameServer.pdb
E:\UnityProjects\LGZN\Unity2019.4.9\Net_ServerProjects\GameServer\GameServer\obj\Debug\net6.0\GameServer.csproj.AssemblyReference.cache
E:\UnityProjects\LGZN\Unity2019.4.9\Net_ServerProjects\GameServer\GameServer\obj\Debug\net6.0\GameServer.GeneratedMSBuildEditorConfig.editorconfig
E:\UnityProjects\LGZN\Unity2019.4.9\Net_ServerProjects\GameServer\GameServer\obj\Debug\net6.0\GameServer.AssemblyInfoInputs.cache
E:\UnityProjects\LGZN\Unity2019.4.9\Net_ServerProjects\GameServer\GameServer\obj\Debug\net6.0\GameServer.AssemblyInfo.cs
E:\UnityProjects\LGZN\Unity2019.4.9\Net_ServerProjects\GameServer\GameServer\obj\Debug\net6.0\GameServer.csproj.CoreCompileInputs.cache
E:\UnityProjects\LGZN\Unity2019.4.9\Net_ServerProjects\GameServer\GameServer\obj\Debug\net6.0\GameServer.dll
E:\UnityProjects\LGZN\Unity2019.4.9\Net_ServerProjects\GameServer\GameServer\obj\Debug\net6.0\ref\GameServer.dll
E:\UnityProjects\LGZN\Unity2019.4.9\Net_ServerProjects\GameServer\GameServer\obj\Debug\net6.0\GameServer.pdb
E:\UnityProjects\LGZN\Unity2019.4.9\Net_ServerProjects\GameServer\GameServer\obj\Debug\net6.0\GameServer.genruntimeconfig.cache

Binary file not shown.

View File

@ -0,0 +1 @@
ba8724e2c19024b0fcbcf48f4f56a47d8c47765e

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,66 @@
{
"format": 1,
"restore": {
"E:\\UnityProjects\\LGZN\\Unity2019.4.9\\Net_ServerProjects\\GameServer\\GameServer\\GameServer.csproj": {}
},
"projects": {
"E:\\UnityProjects\\LGZN\\Unity2019.4.9\\Net_ServerProjects\\GameServer\\GameServer\\GameServer.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "E:\\UnityProjects\\LGZN\\Unity2019.4.9\\Net_ServerProjects\\GameServer\\GameServer\\GameServer.csproj",
"projectName": "GameServer",
"projectPath": "E:\\UnityProjects\\LGZN\\Unity2019.4.9\\Net_ServerProjects\\GameServer\\GameServer\\GameServer.csproj",
"packagesPath": "C:\\Users\\Adam\\.nuget\\packages\\",
"outputPath": "E:\\UnityProjects\\LGZN\\Unity2019.4.9\\Net_ServerProjects\\GameServer\\GameServer\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\Adam\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net6.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net6.0": {
"targetAlias": "net6.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net6.0": {
"targetAlias": "net6.0",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\6.0.101\\RuntimeIdentifierGraph.json"
}
}
}
}
}

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\Adam\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.0.1</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\Adam\.nuget\packages\" />
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />

View File

@ -0,0 +1,72 @@
{
"version": 3,
"targets": {
"net6.0": {}
},
"libraries": {},
"projectFileDependencyGroups": {
"net6.0": []
},
"packageFolders": {
"C:\\Users\\Adam\\.nuget\\packages\\": {},
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {}
},
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "E:\\UnityProjects\\LGZN\\Unity2019.4.9\\Net_ServerProjects\\GameServer\\GameServer\\GameServer.csproj",
"projectName": "GameServer",
"projectPath": "E:\\UnityProjects\\LGZN\\Unity2019.4.9\\Net_ServerProjects\\GameServer\\GameServer\\GameServer.csproj",
"packagesPath": "C:\\Users\\Adam\\.nuget\\packages\\",
"outputPath": "E:\\UnityProjects\\LGZN\\Unity2019.4.9\\Net_ServerProjects\\GameServer\\GameServer\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\Adam\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net6.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"https://api.nuget.org/v3/index.json": {}
},
"frameworks": {
"net6.0": {
"targetAlias": "net6.0",
"projectReferences": {}
}
},
"warningProperties": {
"warnAsError": [
"NU1605"
]
}
},
"frameworks": {
"net6.0": {
"targetAlias": "net6.0",
"imports": [
"net461",
"net462",
"net47",
"net471",
"net472",
"net48"
],
"assetTargetFallback": true,
"warn": true,
"frameworkReferences": {
"Microsoft.NETCore.App": {
"privateAssets": "all"
}
},
"runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\6.0.101\\RuntimeIdentifierGraph.json"
}
}
}
}

View File

@ -0,0 +1,8 @@
{
"version": 2,
"dgSpecHash": "TT49gNyPB3lm2ESjvd3RayDRbzkB+dyPZCZY8/rjR8LQG1PPcVPchSzUpuTOX3TZaBBFGF/xjy/Lx1zZTayKGA==",
"success": true,
"projectFilePath": "E:\\UnityProjects\\LGZN\\Unity2019.4.9\\Net_ServerProjects\\GameServer\\GameServer\\GameServer.csproj",
"expectedPackageFiles": [],
"logs": []
}