Project Items (Visual Studio SDK)

Custom tools let you associate a tool with an item in a project and run that tool whenever the file is saved. Certain custom tools, sometimes referred to as single-file generators, are frequently used to implement translators that generate code from data and vice versa. For example, single-file generators create Visual C#, Visual Basic, and Visual J# source code out of the .settings and .resx files. The generated source code provides strongly-typed access to the data in the .settings and .resx files. The Visual C#, Visual Basic, and Visual J# project types support custom tools; Visual C++ project types do not. Your own project types can also support custom tools.

Custom tools are registered components that implement the IVsSingleFileGenerator interface.

Custom tools are associated with a ProjectItem interface object, and are like designers and editors. A custom tool takes the file represented by a ProjectItem as input and writes a new file whose file name is provided by the DefaultExtension method.

In This Section


  • IVsSingleFileGenerator
    Provides details about the IVsSingleFileGenerator, which transforms a single input file into a single output file that can be compiled or added to a project.

  • ProjectItem
    Explains the ProjectItem interface, which represents an item in a project.

  • DefaultExtension
    Provides details about the DefaultExtension method, which retrieves the file name extension that is given to the output file name.

  • Projects and Solutions
    Describes how to use Visual Studio projects and solutions to organize code files and resource files, and how to implement source control.