Visual Studio 外掛程式會產生 Visual Studio IDE 使用的檔案,因此可以將解決方案在 Visual Studio 中開啟(檔案 - 開啟 - 專案/方案…​)。

`visual-studio` 外掛程式實際產生的內容取決於使用的其他外掛程式

表 1. Visual Studio 外掛程式行為
外掛程式 描述

產生最小解決方案檔案。

C++ 應用程式

將代表 C++ 應用程式的專案新增至解決方案檔案。

C++ 函式庫

為每個指定的連結新增專案,代表共用和/或靜態函式庫至解決方案檔案。

用法

build.gradle.kts
plugins {
    `visual-studio`
}
build.gradle
plugins {
    id 'visual-studio'
}

Visual Studio 外掛程式會在您的專案中新增許多工作。您將使用的主要工作是 visualStudiocleanVisualStudioopenVisualStudio 工作。

工作

下圖顯示此外掛程式新增的工作之間的關係。

visual studio task graph
圖 1. Visual Studio 外掛程式預設工作圖

生命週期工作

visualStudio工作

依賴於projectNameVisualStudioSolution 和所有 Visual Studio 專案檔案產生工作

產生所有 Visual Studio 配置檔案。

cleanVisualStudio刪除

依賴於:所有 Visual Studio 專案和解決方案檔案清除工作

移除所有 Visual Studio 配置檔案。

openVisualStudio - 工作

依賴於visualStudio

在 IDE 內開啟 Visual Studio 解決方案。

IDE 工作區工作

projectNameVisualStudioSolution - 產生解決方案檔案工作

產生 .sln 檔案。此工作僅在根專案上可用。

IDE 專案工作

C++ 應用程式外掛程式工作

projectNameVisualStudioProject產生專案檔案工作

為應用程式組件產生 .vcxproj 檔案。

projectNameVisualStudioFilters產生篩選器檔案工作

為應用程式組件產生 .vcxproj.filters 檔案。

mainVisualStudio - 工作 (生命週期)

依賴於projectNameVisualStudioProjectprojectNameVisualStudioFilters

為應用程式組件產生所有 Visual Studio 專案檔案。

C++ 函式庫外掛程式工作

projectNameDllVisualStudioProject產生專案檔案工作

main 組件的共用連結產生 .vcxproj 檔案。

projectNameDllVisualStudioFilters產生篩選器檔案工作

main 組件的共用連結產生 .vcxproj.filters 檔案。

projectNameLibVisualStudioProject產生專案檔案工作

main 組件的靜態連結產生 .vcxproj 檔案。

projectNameLibVisualStudioFilters產生篩選器檔案工作

main 組件的靜態連結產生 .vcxproj.filters 檔案。

mainVisualStudio - 工作 (生命週期)

依賴於projectNameDllVisualStudioProject(用於共用連結)、projectNameDllVisualStudioFilters(用於共用連結)、projectNameLibVisualStudioProject(用於靜態連結)和 projectNameLibVisualStudioFilters(用於靜態連結)

為函式庫組件產生所有 Visual Studio 專案檔案。

配置

Visual Studio 外掛程式允許對產生的檔案進行一些自訂。以下章節顯示自訂功能。

變更產生的解決方案檔案位置

產生的解決方案位置可以在根專案上配置。

build.gradle.kts
visualStudio {
    solution {
        solutionFile.setLocation(file("solution.sln"))
    }
}
build.gradle
visualStudio {
    solution {
        solutionFile.location = file('solution.sln')
    }
}

變更產生的專案檔案位置

產生的專案檔案位置可以在任何專案上配置。

build.gradle.kts
visualStudio {
    projects.all {
        projectFile.setLocation(file("project.vcxproj"))
        filtersFile.setLocation(file("project.vcxproj.filters"))
    }
}
build.gradle
visualStudio {
    projects.all {
        projectFile.location = file('project.vcxproj')
        filtersFile.location = file('project.vcxproj.filters')
    }
}