【发布时间】:2017-09-01 02:21:22
【问题描述】:
我正在尝试解决在几个类库中引用共享项目的问题。
在解决方案中,项目之间的引用是:
- 类库 A -> SharedProject
- 类库 B -> SharedProject
- 类库 C -> SharedProject
- 类库 C -> 类库 A
- 类库 C -> 类库 B
在共享项目中,我只有一个要共享的具有逻辑的类,因此在每个类库项目中,我都使用共享项目中的相同类。但是在构建之后,我在类库 C 中得到以下错误:
类库A和类库B中都存在“同一个类”类型
有没有办法让这个工作,或者我应该用经典类库替换共享项目?
【问题讨论】:
-
只要确保两个类在不同的命名空间下,问题就解决了。
-
每个类库有不同的命名空间,共享项目中的类有特定的命名空间,但在其他库之间是共享的
-
当然存在相同的类型。您将其编译到每个 DLL 中。它位于 A、B、 和 C 中。有关这与跨多个项目引用通用的独立 DLL 有何不同的详细信息,请参阅标记的重复项。共享项目功能有助于在一次编译的 DLL 无法工作的情况下共享代码(例如,针对完全不同的平台)。就个人而言,我仍然会为每个平台编译 DLL,但 VS 提供了将整个代码合并到引用项目中的这一功能。这更像是添加现有文件作为链接,而不是参考。
标签: c# class-library project-reference shared-project