鉴于我在 TFS 源代码存储库中有一个文件。我试图以编程方式发现该文件属于哪个cs项目,然后哪些其他项目\解决方案依赖于该项目的输出。
我怎么能这样做呢?
proj文件是 XML 文件,如果你解析它们,你会在ItemGroup
. 您可能会发现多个ItemGroup
元素。有些有类型的孩子Compile
,Contents
......等等所以我建议你检查其中的几个,以了解我在说什么。cs文件很可能在Compile
对于您的项目依赖项,我以前从未这样做过,但是如果在您的解决方案中声明了依赖项,那么在每个项目中您都应该找到ProjectReference
它所依赖的其他项目。
总之,您需要解析项目文件 XML,然后查询您的源文件和项目依赖项。
这些csproj
文件是基于 Xml 的文件,因此您可以轻松打开文件、处理 Xml 并搜索文件。对于文件,您可以通过在其中搜索 TagItemGroup
和在ItemGroup
Tag中搜索文件来查找文件是否包含在项目中Compile
,如果文件用于编译,则根据文件性质GroupItem
在或其他中搜索None
要搜索引用的项目,您必须在GroupItem
标签中搜索关于ProjectReference
标签
还有其他有用的标签,如资源内容、无...等。
我鼓励你打开你csproj
的记事本++,看看你能找到什么,这很简单。