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

How to build two binaries .net core 2 console app

我是 .Net Core 和 c sharp 的新手。我想在同一个命名空间中构建两个二进制文件。它是两个控制台应用程序,一个服务器和一个客户端。我想分享一些像 "Scores" 这样的对象并这样思考。实际上我已经创建了两个应用程序(通过 "dotnet new console" 命令)但我可以更改并重新开始。我在一个 docker 容器内工作,里面有一个简单的文本编辑器 (emacs)。那里没有 visual studio 或 visual studio 代码 :)

可以吗?

编辑: 好的,我会尝试更精确。我必须创建两个程序:一个是服务器,另一个是客户端。必须连接客户端才能玩游戏(多人游戏)。我是否必须创建两个不同的项目(使用它们自己的 namespaces/types/tests)或者我可以创建一个简单的项目(只需调用一次 "dotnet new console" 命令)并共享相同的命名空间,在服务器和客户端之间共享一些类型(比如分数 class)和测试?这是我当前的目录(客户端和服务器是通过 "donet new console" 命令创建的两个目录:

├── 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

如果我对问题的理解正确,你所要做的就是在每个 class.

上更改名称空间

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

还有一个提示..您甚至可以使用 using 语句使用 import 语句在其他命名空间中导入 classes,或者可以在命名空间中使用完全限定的 class 名称。

using Yourcompany.Yourapp;

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

无论如何,在这两种情况下,您都需要添加对 binaries.You 的引用,可以使用 .csproj 文件做到这一点。

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