我正在使用 Google 协议缓冲区编写网络库。我有一个 Visual Studio 项目,它执行自定义构建步骤以运行 Protobuf 编译器,以及另一个构建输出类的项目。
我想将客户端库和服务器库放在单独的解决方案中。但两者都依赖于相同的 Protocol Buffers 类。如果它们都包含与 Protobuf 相关的项目,可以吗?
编辑澄清:我知道这样做是可能的,但我很好奇它是否被认为是好的做法。
我正在使用 Google 协议缓冲区编写网络库。我有一个 Visual Studio 项目,它执行自定义构建步骤以运行 Protobuf 编译器,以及另一个构建输出类的项目。
我想将客户端库和服务器库放在单独的解决方案中。但两者都依赖于相同的 Protocol Buffers 类。如果它们都包含与 Protobuf 相关的项目,可以吗?
编辑澄清:我知道这样做是可能的,但我很好奇它是否被认为是好的做法。
好吧,我认为这不是一个坏主意,但您可能需要考虑将您的协议缓冲区项目编译为 .dll 文件,并让您的客户端和服务器端项目引用它。在我看来只是更清洁。
当您对 .dll 进行更改时,您可以在服务器和客户端项目中右键单击对它的引用,然后单击Update Reference
。就那么简单!
那没问题。
我通常有几个解决方案(当我有 20 多个项目时)具有相同的项目集。例如,我有我需要的所有项目的主要解决方案。和开发解决方案,我还包括单元测试项目或开发所需的类似项目。
有一些链接指向组织项目和解决方案的最佳实践:
希望这有助于找出可以应用于您的案例的最佳实践。