【问题标题】:How do you delete Solution Folder and contents within a VS extension?如何删除 VS 扩展中的解决方案文件夹和内容?
【发布时间】: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


【解决方案1】:

Solution Folder 是给定解决方案中的一个项目,与任何其他项目一样。

要从解决方案中删除项目,您不能调用proj.Delete(),即not implemented as per official documentation

从当前解决方案中删除项目。

请注意,此方法当前未实现。

相反,您必须使用dte.Solution.Remove(proj);,这也适用于解决方案文件夹。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多