gpt4 book ai didi

c# - 将类从一个 C# 项目导入到另一个项目时是否可以排除自动生成的文件?

转载 作者:行者123 更新时间:2023-12-02 03:00:58 26 4
gpt4 key购买 nike

将类从一个 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com