【发布时间】:2013-08-13 13:02:23
【问题描述】:
假设我在 TFS 源代码存储库中有一个文件。我试图以编程方式发现该文件属于哪个cs项目,然后哪些其他项目\解决方案依赖于该项目的输出。
我该怎么做呢?
【问题讨论】:
-
要求我们推荐或查找工具、库或喜爱的场外资源的问题与 Stack Overflow 无关
-
好的,我已经相应地编辑了问题。
假设我在 TFS 源代码存储库中有一个文件。我试图以编程方式发现该文件属于哪个cs项目,然后哪些其他项目\解决方案依赖于该项目的输出。
我该怎么做呢?
【问题讨论】:
proj 文件是 XML 文件,如果你解析它们,你会发现 ItemGroup 下的所有项目文件。您可能会发现多个 ItemGroup 元素。有些有Compile、Contents...等类型的孩子,所以我建议你检查其中的几个,以了解我在说什么。 cs 文件很可能位于Compile
对于您的项目依赖项,我以前从未这样做过,但如果在您的解决方案中声明了依赖项,那么在每个项目中,您应该找到它所依赖的其他项目的ProjectReference。
总之,您需要解析项目文件 XML,然后查询您的源文件和项目依赖项。
【讨论】:
csproj 文件是基于 Xml 的文件,因此您可以轻松打开文件、处理 Xml 并搜索文件。
对于文件,您可以通过在文件中搜索标记ItemGroup 并在ItemGroup 中搜索标记Compile 来查找文件是否包含在项目中,如果文件用于编译,如果不在GroupItem 中搜索None 或其他根据文件性质
要搜索引用的项目,您必须在 GroupItem 标签中搜索关于 ProjectReference 标签
还有其他有用的标签,例如资源内容、无...等。
我鼓励你在 notepad++ 中打开你的csproj,看看你能找到什么,这很简单。
【讨论】: