# Interface VisualStudioSolution

All Superinterfaces:
  `Buildable, Describable, IdeWorkspace, Named`

@Incubating public interface VisualStudioSolution extends Named, Buildable, IdeWorkspace
A visual studio solution, representing one or more native binaries in a build.

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

     plugins {
         id 'visual-studio'
     }

     visualStudio {
         solution {
             solutionFile.location = "vs/${name}.sln"
             solutionFile.withContent { TextProvider content ->
                 content.asBuilder().insert(0, "# GENERATED FILE: DO NOT EDIT\\n")
                 content.text = content.text.replaceAll("HideSolutionNode = FALSE", "HideSolutionNode = TRUE")
             }
         }
     }

- ## 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.
  `String`
  `getDisplayName()`
  Returns the display name of this object.
  `Provider<RegularFile>`
  `getLocation()`
  Returns the location of the generated solution file.
  `String`
  `getName()`
  The object's name.
  `TextConfigFile`
  `getSolutionFile()`
  Configuration for the generated solution file.

- ## Method Details

  - ### getSolutionFile

    @Incubating TextConfigFile getSolutionFile()
    Configuration for the generated solution file.

  - ### getLocation

    Provider<RegularFile> getLocation()
    Returns the location of the generated solution file.
    Specified by:
      `getLocation` in interface `IdeWorkspace`

  - ### 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.

  - ### getDisplayName

    String getDisplayName()
    Description copied from interface: `Describable`
    Returns the display name of this object. It is strongly encouraged to compute it lazily, and cache the value if it is expensive.
    Specified by:
      `getDisplayName` in interface `Describable`
    Returns:
      the display name