C# Visual Studio向导-赢得';t将项目项添加到正确的文件夹中
我正在尝试创建自定义Visual Studio向导以创建生成的代码 一切正常,但唯一的问题是项目文件不会保存在正确的文件夹中。我右键单击项目文件夹并选择“新建项…”,但向导将文件保存在项目根目录中 守则:C# Visual Studio向导-赢得';t将项目项添加到正确的文件夹中,c#,visual-studio,visual-studio-sdk,C#,Visual Studio,Visual Studio Sdk,我正在尝试创建自定义Visual Studio向导以创建生成的代码 一切正常,但唯一的问题是项目文件不会保存在正确的文件夹中。我右键单击项目文件夹并选择“新建项…”,但向导将文件保存在项目根目录中 守则: public class ProcedureClass : IDTWizard { public void Execute(object Application, int hwndOwner, ref object[] ContextParams, ref object[] Custo
public class ProcedureClass : IDTWizard
{
public void Execute(object Application, int hwndOwner, ref object[] ContextParams, ref object[] CustomParams, ref EnvDTE.wizardResult retval)
{
// Showing wizard dialog and generating code here...
var projectItems = ContextParams[2] as ProjectItems;
var project = projectItems.ContainingProject;
retval = wizardResult.wizardResultSuccess;
project.ProjectItems.AddFromTemplate(tempFile, ContextParams[4]);
}
}
下图显示了我单击的位置和创建文件的位置:
如果代码使用projectItems.ContainingProject,则这是预期的,它始终返回根项目。 见我的文章 如何:从Visual Studio.NET宏或加载项导航解决方案的文件 正确的代码是:
- 获取projectItems.Parent,这是一个对象,它可以是EnvDTE.Project或EnvDTE.ProjectItem
- 如果是EnvDTE.Project,请使用Project.ProjectItems.AddFromTemplate(..)
- 如果是EnvDTE.ProjectItem,请使用ProjectItem.ProjectItems.AddFromTemplate(…)