# VisualStudioSolution

API Documentation: | `VisualStudioSolution`

Note: This class is incubating and may change in a future version of Gradle.

A visual studio solution, representing one or more `NativeBinarySpec` instances from the same `NativeComponentSpec`.

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

    apply plugin: "visual-studio"
    model {
        visualStudio {
            solutions.all {
                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")
                }
            }
        }
    }

### Properties

Property | Description
`buildDependencies` | 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.
`buildTask` | Incubating The 'lifecycle' task associated with the construction of this element.
`projects` | Incubating The set of projects included in this solution.
`solutionFile` | Incubating Configuration for the generated solution file.

### Methods

Method | Description
`builtBy(tasks)` | Incubating Adds a task that is required for the construction of this element. A task added this way is then added as a dependency of the associated lifecycle task.

### Script blocks

No script blocks

### Property details

#### `TaskDependency` `buildDependencies` (read-only)

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.

#### `Task` `buildTask`

Note: This property is incubating and may change in a future version of Gradle.

The 'lifecycle' task associated with the construction of this element.

#### ``Set`<`VisualStudioProject`>` `projects` (read-only)

Note: This property is incubating and may change in a future version of Gradle.

The set of projects included in this solution.

#### `TextConfigFile` `solutionFile` (read-only)

Note: This property is incubating and may change in a future version of Gradle.

Configuration for the generated solution file.

### Method details

#### `void` `builtBy`(``Object`...` tasks)

Note: This method is incubating and may change in a future version of Gradle.

Adds a task that is required for the construction of this element. A task added this way is then added as a dependency of the associated lifecycle task.