# Interface VisualStudioProject

All Superinterfaces:
  `Buildable, Named`

public interface VisualStudioProject extends Named, Buildable
A visual studio project, created from one or more native binaries.

The content and location of the generate project file can be modified by the supplied methods:

     plugins {
         id 'visual-studio'
     }

     visualStudio {
         projects.all {
             projectFile.location = "vs/${name}.vcxproj"
             projectFile.withXml {
                 asNode().appendNode('PropertyGroup', [Label: 'Custom'])
                         .appendNode('ProjectDetails', "Project is named ${project.name}")
             }
         }
     }

- ## Nested Class Summary

  ### Nested classes/interfaces inherited from interface Named

  `Named.Namer`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `TaskDependency`
  `getBuildDependencies()`
  Returns a dependency which contains the tasks which build this artifact.
  `XmlConfigFile`
  `getFiltersFile()`
  Configuration for the generated filters file.
  `String`
  `getName()`
  The object's name.
  `XmlConfigFile`
  `getProjectFile()`
  Configuration for the generated project file.

- ## Method Details

  - ### getProjectFile

    @Incubating XmlConfigFile getProjectFile()
    Configuration for the generated project file.

  - ### getFiltersFile

    @Incubating XmlConfigFile getFiltersFile()
    Configuration for the generated filters file.

  - ### getBuildDependencies

    @Incubating TaskDependency getBuildDependencies()
    Description copied from interface: `Buildable`
    Returns a dependency which contains the tasks which build this artifact. All `Buildable` implementations must ensure that the returned dependency object is live, so that it tracks changes to the dependencies of this buildable.
    Specified by:
      `getBuildDependencies` in interface `Buildable`
    Returns:
      The dependency. Never returns null. Returns an empty dependency when this artifact is not built by any tasks.

  - ### getName

    String getName()
    Description copied from interface: `Named`
    The object's name.

    Must be constant for the life of the object.

    Specified by:
      `getName` in interface `Named`
    Returns:
      The name. Never null.