问题描述
在VS2005/2008中,我能够使用IVsProjectCfg-> EnumOutputs方法获取任何项目的输出文件列表.对于VS2010,此方法已过时.我该怎么用呢?
In VS2005/2008 I was able to get the list of output files for any project using IVsProjectCfg->EnumOutputs method. For VS2010 this method is obsolet. What can I use instead?
推荐答案
我们应该能够获得与您所获得的信息相同的信息通过使用IVsOutputGroup接口通过EnumOutputs:
针对SVsSolutionBuildManager的查询服务
在项目IVsHierarchy上调用IVsSolutionBuildManager :: FindActiveProjectcfg
广播到IVsProjectCfg2
cast to IVsProjectCfg2
调用OpenoutputGroup(运行下面的宏,以了解输出组名称)
调用get_outputs
子 CheckProjectOutputs()
Sub CheckProjectOutputs()
昏暗 v 是 VSProject
Dim v As VSProject
v = DTE.Solution.Item(1).Object
对于 每个 o 作为 OutputGroup 在 v.Project.ConfigurationManager.ActiveConfiguration.OutputGroups
For Each o As OutputGroup In v.Project.ConfigurationManager.ActiveConfiguration.OutputGroups
'MsgBox(o.DisplayName&"")
'MsgBox(o.DisplayName & " ")
对于 每个 f 为 字符串 在 o.FileNames
For Each f As String In o.FileNames
Debug.Print(o.DisplayName&" " & f)
Debug.Print(o.DisplayName &" " & f)
下一个
Next
下一个
为C#Windows窗体应用输出类似于以下内容的
主要输出WindowsFormsApplication1.exe
主要输出WindowsFormsApplication1.exe.config
源文件Form1.cs
源文件Form1.Designer.cs
源文件Program.cs
源文件Properties \ AssemblyInfo.cs
源文件Properties \ Resources.Designer.cs
源文件Properties \ Settings.Designer.cs
源文件Properties \ Resources.resx
源文件WindowsFormsApplication1.exe.config
源文件WindowsFormsApplication1.csproj
调试符号WindowsFormsApplication1.pdb
子 CheckProjectOutputs()
Sub CheckProjectOutputs()
昏暗 v 是 VSProject
Dim v As VSProject
v = DTE.Solution.Item(1).Object
对于 每个 o 作为 OutputGroup 在 v.Project.ConfigurationManager.ActiveConfiguration.OutputGroups
For Each o As OutputGroup In v.Project.ConfigurationManager.ActiveConfiguration.OutputGroups
'MsgBox(o.DisplayName&"")
'MsgBox(o.DisplayName & " ")
对于 每个 f 为 字符串 在 o.FileNames
For Each f As String In o.FileNames
Debug.Print(o.DisplayName&" " & f)
Debug.Print(o.DisplayName &" " & f)
下一个
Next
下一个
我希望能对您有所帮助.
谢谢!
这篇关于如何获取输出文件列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!