Visual Studio 外掛程式與設定快取不相容。

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任務

依賴於專案名稱VisualStudioSolution 和所有 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')
    }
}