【发布时间】:2019-01-23 15:54:22
【问题描述】:
我正在为 VS 2017 编写一个 VS 扩展,并且需要从解决方案中删除一个解决方案文件夹及其内容。除了使用 ProjectItem.Remove 从项目中删除项目和使用 Project.Delete 从解决方案中删除项目之外,我找不到太多文档。但是,调用这些方法中的每一个都会导致以下异常:
参数不正确。 (来自 HRESULT 的异常:0x80070057 (E_INVALIDARG))
在扩展中删除解决方案文件夹的正确方法是什么?
【问题讨论】:
-
您在寻找这个
IVsSolution7.CloseFolder吗? docs.microsoft.com/en-us/dotnet/api/… -
该方法类似于关闭解决方案;它实际上并没有改变解决方案或项目。我正在寻找一种从解决方案中删除解决方案文件夹及其文件的方法,这实际上会修改 sln 文件以删除相应的节点。
-
对不起,我混淆了不同的概念。 “解决方案文件夹”是与其他项目一样的项目,但
proj.Delete()不起作用(根据文档 docs.microsoft.com/en-us/dotnet/api/envdte.project.delete)。你必须使用dte.Solution.Remove(proj) -
谢谢,这正是我想要的。您能提供这个作为答案,以便我将其标记为正确吗?
标签: visual-studio visual-studio-extensions envdte