代码之家  ›  专栏  ›  技术社区  ›  vanja.

创建VisualStudio模板

  •  2
  • vanja.  · 技术社区  · 17 年前

    现在,我已经在线学习了一些教程,这些教程让我创建表单来查询用户并将数据传递到IWizard类中,但我不知道从那里可以做什么。

    这些教程提供了一个示例来进行一些简单的替换: 代码:

    Form1 form = new Form1();
    DialogResult dlg = form.ShowDialog();
    if (dlg == DialogResult.OK)
    {
        foreach (KeyValuePair<string, string> pair in form.Parameters)
        {
            if (!replacementsDictionary.ContainsKey(pair.Key))
                replacementsDictionary.Add(pair.Key, pair.Value);
            else
                replacementsDictionary[pair.Key] = pair.Value;
        }
    }
    form.Close();
    

    但是我希望根据用户设置有选择地包括文件,如果可能的话,根据设置有选择地包括文件中的代码部分。

    3 回复  |  直到 17 年前
        1
  •  3
  •   mackenir    17 年前

    根据我的经验, ShouldAddProjectItem 文件夹 在模板项目中。因此,它几乎毫无用处。

    相反,您需要在 ProjectFinishedGenerating 使用VSAPI删除项目项的实现。

    在其中,您可以删除以下项目:

    ProjectItem file = project.ProjectItems.Item("File.cs");
    file.Remove();
    
        2
  •  1
  •   Roger Lipscombe    16 年前

    您可以使用 $if$

    <ItemGroup>
        <Reference Include="System"/>
        $if$ ($targetframeworkversion$ >= 3.5)
        <Reference Include="System.Core"/>
        <Reference Include="System.Xml.Linq"/>
        <Reference Include="System.Data.DataSetExtensions"/>
        $endif$
    

        3
  •  0
  •   Erik    17 年前

    如果我理解正确,您希望能够确定是否应将项目项添加到项目中。

    如果是这样,您可以实现IWizard.ShouldAddProjectItem并返回是否要添加文件。