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
庭院深深深几许?杨柳堆烟,帘幕无重数。
玉勒雕鞍游冶处,楼高不见章台路。
雨横风狂三月暮。门掩黄昏,无计留春住。
泪眼问花花不语,乱红飞过秋千去。
如果感觉对您有帮助
欢迎向作者提供捐赠
这将是创作的最大动力