2011-05-19 159 views
0

我有许多VS2010项目在各种解决方案中使用,但通常只有这些项目的一个子集用于任何一种解决方案。其中一个项目(我将称之为“基础”项目)存在于每个解决方案中,并包含其他项目中定义的子类的基础实现。换句话说,基础项目包含在每个解决方案中,因为其他项目依赖于它,但任何相关项目都可能包含或可能不包含在任何特定解决方案中。在VS2010中共享多个C#项目之间的信息

我想知道是否有一种方法让基础项目知道哪个依赖项目存在于任何一个解决方案中,以便它可以采取相应的行动。我认为#defines可以轻松解决这个问题(通过#为每个相关项目定义一个唯一的符号,并相应地将代码包含到基础项目中),但#defined符号不能跨项目查看。是否有一种简单的方法将不同的代码包含在基础项目中,具体取决于解决方案中的哪些相关项目?

编辑:在所有这些项目中使用的语言是C#,如果这有所作为。

+1

我真的不知道你的目标是在这里。其他的解决方案是依赖于基础的,并且看起来你试图使基础有条件地依赖于其他解决方案,但是为了什么目的?无论你的真正目标是什么,有可能有更好的方法。示例或代码将有所帮助。 – Fosco 2011-05-19 14:45:27

+0

这是一个有点复杂的情况,但我会尽力描述它。基类包含一个字节数组,其中包含有关应该变为哪个子类的信息。我有一些函数可以解析这些信息并确定子类的类型,但是这些函数在每个单独的应用程序中必须不同,因为在每个解决方案中都不存在所有具有子类定义的相关项目。如果基础项目可以知道哪些依赖解决方案存在,则可以通过仅包含现有项目的代码将解析功能移至基础项目。 – Steve 2011-05-19 14:55:51

+0

@Steve也许所有的子类定义都应该是基础项目的一部分,或者是基础项目的一个新的依赖项? – Fosco 2011-05-19 14:58:35

回答

1

我认为你需要做的是在一个单独的解决方案中提取常见项目,并将它们用作其他解决方案中的参考。

+0

我不明白这是如何解决这个问题的:“我想知道基础项目是否有办法知道任何一个解决方案中存在哪些依赖项目**,以便它可以采取相应的行动**” – forsvarir 2011-05-19 14:52:25

+1

那么我明白他需要将基础项目包含在不同的解决方案中,为什么不提取它?并单独构建它,可能是我误解了这个问题 – MBen 2011-05-19 14:59:43