如何构build两个二进制文件.net core 2控制台应用程序

我在.Net核心和c尖锐新。 我想在同一个命名空间中构build两个二进制文件。 这是两个控制台应用程序,一个服务器和一个客户端。 我想分享一些像“分数”这样的对象,然后像这样思考。 其实我已经创build了两个应用程序(通过“dotnet新控制台”命令),但我可以改变,并重新开始。 我在一个简单的文本编辑器(emacs)的docker集装箱内工作。 没有视觉工作室或视觉工作室代码:)

有可能吗?

编辑 :好的,我会尽量做得更精确。 我必须创build两个程序:一个是服务器,另一个是客户端。 客户必须连接才能玩游戏(多人游戏)。 我是否需要创build两个不同的项目(使用它们自己的名称空间/types/testing),或者我可以使用一个简单的项目(只需调用一次“dotnet new console”命令)并共享一个相同的名称空间,在服务器和客户端之间共享一些types(比如分数)和testing? 这里是我的curent目录(客户端和服务器是通过“donet new console”命令创build的两个目录:

├── README.md ├── client │ ├── client.csproj │ ├── obj │ │ ├── client.csproj.nuget.cache │ │ ├── client.csproj.nuget.g.props │ │ ├── client.csproj.nuget.g.targets │ │ └── project.assets.json │ └── srcs │ ├── Program.cs │ └── Types │ └── user.cs ├── docs │ ├── rfc │ │ └── donotremove │ ├── text │ │ └── donotremove │ └── uml │ └── donotremove ├── server │ ├── obj │ │ ├── project.assets.json │ │ ├── server.csproj.nuget.cache │ │ ├── server.csproj.nuget.g.props │ │ └── server.csproj.nuget.g.targets │ ├── server.csproj │ └── srcs │ ├── Program.cs │ └── Types │ └── server.cs └── tests └── tests.cs 

如果我正确地理解了这个问题,你所要做的就是改变每个类的命名空间。

例如,假设你的一个二进制文件被称为Yourappname.Server而另一个被称为Yourappname.Client 。 如果我们假设你需要共享的公共命名空间是Yourcompany.Yourapp 。 然后只需将您的类的名称空间更改为Yourcompany.Yourapp完成此工作。

还有一个小技巧。你甚至可以使用using语句使用import语句在其他命名空间中导入类,也可以使用具有命名空间的完全限定类名。

 using Yourcompany.Yourapp; 

要么

 Yourcompany.Yourapp.Score score =new Yourcompany.Yourapp.Score(); 

无论如何,在这两种情况下,您需要添加对二进制文件的引用。您可以使用.csproj文件来完成此操作。

 <ItemGroup> <ProjectReference Iclude="path to .csproj" /> </ItemGroup>