C#学习教程:ENVDTE – 将新项目添加到现有解决方案并将其定位到特定文件夹中分享


ENVDTE – 将新项目添加到现有解决方案并将其定位到特定文件夹中

我在visual studio 2012上使用c#编写了一个Visual Studio向导模板。

我按照MSDN步骤操作:我创建了一个VS模板,然后创建了一个类库项目,其中包含一个实现IWizard接口的类,我配置了.vstemplate文件等…

在我的类库项目中,我从计算机中的某个目录复制现有解决方案,我将新生成的项目添加到该解决方案,然后运行它。

我这样做:

public void RunStarted(object automationObject, Dictionary replacementsDictionary, WizardRunKind runKind, object[] customParams) { solutionDir = replacementsDictionary["$solutiondirectory$"]; destProjectDir = replacementsDictionary["$destinationdirectory$"]; projName = replacementsDictionary["$specifiedsolutionname$"]; EmulationDir = @"MY_PATHTestSln"; DirectoryCopy(EmulationDir, solutionDir); dte = (DTE2)automationObject; } public void RunFinished() { Solution2 solution; Project p; solution = (Solution2)dte.Solution; solution.Open(solutionDir + "\TestSln.sln"); p = solution.AddFromFile(destProjectDir + "\" + projName + ".vcxproj"); } 

但是我必须将新项目添加到解决方案的特定子文件夹中:上面的代码直接将新项目添加到解决方案中,我想将它添加到solutionDir apps中。

你知道怎么办吗? 谢谢!!

您可以使用SolutionFolder接口完成此操作:

 Project project = getSolutionSubFolder(solution, "SubFolderName"); if (project != null) { SolutionFolder folder = (SolutionFolder)project.Object; folder.AddFromFile("yourProjectFilePath"); } 

其中getSolutionSubFolder方法如下所示:

上述就是C#学习教程:ENVDTE – 将新项目添加到现有解决方案并将其定位到特定文件夹中分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

 private static Project getSolutionSubFolder(Solution2 solution, string subfolder) { return solution .Projects .Cast() .FirstOrDefault( p => string.Equals(p.Name, subfolder, StringComparison.Ordinal)); } 

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/1031619.html

发表评论

邮箱地址不会被公开。 必填项已用*标注