将类从一个 C# 项目导入到另一个项目时是否可以排除自动生成的文件?
我有一个项目,它基于从 proto 文件生成的类来实现 GRPC 服务。
此外,我还有另一个项目,我在其中测试第一个项目的类,例如 GRPC 服务。在第二个项目中,我实现了一个 GRPC 客户端,以使用相同的 proto 文件副本来测试 GRPC 服务。
问题是我导入了第一个项目的所有类,遗憾的是其中一些类是使用相同的原型(prototype)文件生成的,并且有很多关于类名冲突的警告。
有没有办法在同一解决方案的项目之间仅导入特定文件?
我使用项目文件中的下一个指令来生成类:
- 在第一个项目中:
<ItemGroup>
<Protobuf Include="Protos\Proto.proto" GrpcServices="Server" />
</ItemGroup>
- 在第二个中:
<ItemGroup>
<Protobuf Include="Protos\Proto.proto" GrpcServices="Client" />
</ItemGroup>
我将第一个项目的类导入到第二个项目中,如下所示:
<ItemGroup>
<ProjectReference Include="..\core\First.csproj" />
</ItemGroup>
警告是这样的:
TestClient.cs(53,29): warning CS0436: The type 'Type1' in '/folder1/solution/test_project/obj/Debug/netcoreapp3.1/Class1.cs' conflicts with the imported type 'Type1' in 'Project1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'. Using the type defined in '/folder1/solutiion/test/obj/Debug/netcoreapp3.1/Class1.cs'. [/folder1/solution/test_project/Project2.csproj]
最佳答案
我通常在单个程序集中创建原型(prototype)文件及其生成的代码,然后从服务和客户端程序集中引用该程序集。这使得代码生成一次,并消除重复的代码生成。
关于c# - 将类从一个 C# 项目导入到另一个项目时是否可以排除自动生成的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59982209/