【问题标题】:Detect Setting from Visual Studio Custom Extension从 Visual Studio 自定义扩展中检测设置
【发布时间】:2019-11-19 22:47:22
【问题描述】:

我正在更新现有的 Visual Studio 扩展以与 Visual Studio 2019 兼容。此扩展允许开发人员创建自定义项目类型。当用户单击 Visual Studio 的“创建”按钮创建此自定义类型的新项目时,扩展程序会显示一个自定义表单,以便在扩展程序创建项目之前从开发人员那里检索某些信息。这是在我的扩展的 vstemplate 中指定的向导类库中完成的:

<WizardExtension>
    <Assembly>...Wizard, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b5b18240577bb6e8</Assembly>    
    <FullClassName>...Wizard.Logic.Wizard</FullClassName>
</WizardExtension>

我的问题是这样的:

  • 有没有办法从我的扩展程序的Wizard 类中检测是否选中了下面显示的将解决方案和项目放在同一目录中 复选框?

【问题讨论】:

    标签: c# visual-studio visual-studio-2019 visual-studio-extensions


    【解决方案1】:

    有没有办法检测 Place 解决方案和项目是否 在同一目录中,下面显示的复选框是从内部选中的 我的扩展的向导类?

    恐怕答案是否定的。 VS2019 SDK 没有 api 知道是否检查了 Place solution and project in the same directory。此复选框不是解决方案甚至项目的有效设置。

    假设您的模板在创建模板时有两种形式(类似于asp.net web 项目)。 Form1 是来自 VS IDE 的普通文件夹,而 Form2 是来自 Wizard 的自定义文件夹,解决方案文件和相关项目文件夹,隐藏的 .vs 文件夹在您单击 final 之前不会创建 创建按钮。所以我认为关于Place solution and project in the same directory 的信息在项目最终创建之前存储在临时缓存中。这在您的向导类中很难访问。

    所以我现在认为,你想要的不是受支持的行为......

    【讨论】:

    • 您是正确的,我的模板在创建模板时有两个表单,VS IDE 表单,然后是我的向导中的自定义表单。如果他们不是官方 api 来给我复选框信息,我希望我能找到一种替代方法来检测复选框状态,即使它有点骇人听闻,但我还没有想出任何东西。
    • 我也尝试检查是否有任何替代方法,但我发现当我们在 form1 甚至 form2 中选择复选框时,在解决方案文件夹中没有创建任何内容(甚至是 .vs 文件夹)。所以我认为当我们在 form2 中时,关于我们是否选中该框的信息存储在某个地方的临时缓存中,而不是解决方案本身......这意味着很难找到我们想要的信息 :-(
    猜你喜欢
    • 1970-01-01
    • 2022-06-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多