2014-03-25 26 views

回答

2

源文件不是解决方案的一部分。它们是项目的一部分,而项目又是解决方案的一部分。尽管源文件本身没有成为项目一部分的概念。该项目有一个参考文件,但没有其他方法。一个源文件可以是多个项目的一部分,这可能是不同解决方案的一部分。

你可以做的是解析SLN和VBPROJ/CSPROJ /任何文件,看看哪些文件引用了特定的源文件。这些文件只是文本,包含有关解决方案或项目的各种信息,包括哪些项目是解决方案的一部分,哪些文件是项目的一部分。您可以递归地解析文件夹中的文件以构建代表解决方案中的项目中的文件的整个树。

请注意,大多数文件将由项目文件中的相对路径引用。

+0

好的,我找到了一种使用LOCATE32工具的方法,它是免费的。 (Windows搜索也可以) 1.搜索全部* .csproj包含文本“SourceFileName.cs” 2.您将找到该文件所属的项目。 3.搜索包含“ProjectNameFoundInStep2.csproj”的所有SLN文件 4.您将获得所有解决方案 – Sabz

0

Visual Commander开始,然后您可以使用Visual Studio的Automation and Extensibility for Visual Studio API以编程方式访问您的解决方案“DOM风格”。用.NET语言编写一个VS命令,将解决方案遍历到项目中,然后写入项目项目中,将所有找到的文件(项目项目)转储到日志文件,数据库,Web服务中,你有什么。

关于如何导航Visual Studio的DTE,请参见本文HOWTO: Navigate the files of a solution from a Visual Studio .NET macro or add-in

我知道SO对只包含链接而不是真正帮助的答案感到满意,但EnvDTE的各种风格的文档非常丰富,任何用于演示如何使用它的代码示例都非常大。所以我只是给你这个强有力的提示:看看Visual Studio的可扩展性模型,并通过Visual Commander轻松挂钩它,它可以完成在Visual Studio扩展中包装代码的所有工作。从那里你可以使用任何合理的技术(MSBuild,PowerShell,批处理文件)将每个解决方案加载到VS并运行你的新命令。

这实际上回答了这个问题:对于我的数以千计的解决方案中使用的所有源文件,哪些解决方案使用它们。但是我发现你(@Sabz)在下面的评论中给出了一种合理的方式来一次回答一个源文件的问题,这更确切地说是你所问的。

N.B .:我还没有使用Visual Commander,所以我只是假设它可以像广告一样工作。

相关问题