Visaul Studio SDK 中解决方案添加项目 DTE

2021-06-14  乐帮网

visual studio

开发Visaul Studio 插件,实现功能:把现有的项目添加到指定的解决方案中。本来想直接操作sln文件。但是一查发现Visaul Studio SDK中是有专门对应的方法 AddFromFile ,可参考这里:https://docs.microsoft.com/zh-cn/dotnet/api/envdte._solution.addfromfile?view=visualstudiosdk-2019 
现在的场景是利用插件右键项目弹出菜单来选择相关的功能,在VS2019中验证是可行的,代码如下:

 var dte = package.GetServiceAsync(typeof(DTE)).ConfigureAwait(false).GetAwaiter().GetResult() as DTE2;
string projectName = "vkt.demo.vsix";
 UIHierarchy uih = (UIHierarchy)dte.Windows.Item(EnvDTE.Constants.vsWindowKindSolutionExplorer).Object;
Array selectedItems = (Array)uih.SelectedItems;
 foreach (UIHierarchyItem selItem in selectedItems){
	Solution sln = selItem.Object as Solution;
                    if (sln != null)
                    {
		string slnDir = Path.GetDirectoryName(solution.FullName);
		string projectPath = Path.Combine(slnDir,projectName,$"{projectName}.csproj");
		sln.AddFromFile(projectPath);
		break;
                    }
   }

 

公众号二维码

关注我的微信公众号
在公众号里留言交流
投稿邮箱:1052839972@qq.com

庭院深深深几许?杨柳堆烟,帘幕无重数。
玉勒雕鞍游冶处,楼高不见章台路。
雨横风狂三月暮。门掩黄昏,无计留春住。
泪眼问花花不语,乱红飞过秋千去。

欧阳修

付款二维码

如果感觉对您有帮助
欢迎向作者提供捐赠
这将是创作的最大动力