我正在尝试使用向导在 Visual Studio (C++) 项目模板中创建一个过滤器(其中一个除了项目中的单独文件之外什么都不做的小文件夹),因此我在 RunStarted 方法中编写了以下代码:
public void RunStarted(object automationObject,
Dictionary<string, string> replacementsDictionary,
WizardRunKind runKind, object[] customParams)
{
try
{
// Add filters to the project
EnvDTE.DTE dte = (EnvDTE.DTE)automationObject;
Array activeProjects = (Array)dte.ActiveSolutionProjects;
Project activeProj = (Project)activeProjects.GetValue(0);
VCProject prj = (VCProject)activeProj.ProjectItems.Item(0);
VCFilter filter = prj.AddFilter("Header_Files");
filter.AddFile("header.h");
prj.Save();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
这虽然失败了。返回的错误是:
System.IndexOutOfRangeException:索引超出了数组的范围。
在 System.Array.InternalGetReference(Void* elemRef,Int32 等级,Int32* pIndices)
在 System.Array.GetValue(Int32 索引)
在 my_wizard.IMyWizard.RunStarted(对象自动化对象,字典`2 替换字典,WizardRunKind runKind,对象 [] customParams)
我哪里错了?如何向 vs 模板添加过滤器?