У меня есть большое решение, где часть проектов - это классические проекты Visual C ++, а другая часть - проекты типа CMake.Ранее я работал с Windows 7 + VS 2017 + Ubuntu на виртуальной машине, а перед началом сборки проекта CMake для Linux я запускаю rsync для источника синхронизации между ПК и виртуальной машиной.Для этого я создал следующее правило в файле CMakeSettings.json:
{
"name": "Linux-Debug",
"generator": "Unix Makefiles",
"remoteMachineName": "${defaultRemoteMachineName}",
"configurationType": "Debug",
"remoteCMakeListsRoot": "/var/tmp/src/Solution_dir/",
"cmakeExecutable": "/usr/bin/cmake",
"buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}",
"installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}",
"remoteBuildRoot": "/var/tmp/Solution_dir/build/x86_64_debug_unix",
"remoteInstallRoot": "/var/tmp/Solution_dir/install/x86_64_release_unix",
"remoteCopySources": true,
"remoteCopySourcesOutputVerbosity": "Normal",
"remoteCopySourcesConcurrentCopies": "10",
"remoteCopySourcesMethod": "rsync",
"remoteCopyBuildOutput": false,
"cmakeCommandArgs": "",
"buildCommandArgs": "",
"ctestCommandArgs": "",
"inheritEnvironments": [ "linux_x64" ],
"remoteCopySourcesExclusionList": [ "Debug", "Release", ".intermediate", ".vs", "Setup" ]
}
И теперь я установил Windows 10 Pro и WSL.По умолчанию WSL монтирует мои локальные диски (например, / mnt / c, / mnt / d) и, по моему мнению, больше нет смысла делать копию папки с исходным кодом.Но если я изменю свойство remoteCMakeListsRoot на "/ mnt / d / Solution_dir" VS запустит rsync, который удалит мою папку .git и все папки из remoteCopySourcesExclusionList имущество.Если я удалю свойство remoteCopySourcesExclusionList из CMakeSettings.json, rsync все равно удалит папку .git.
Каков истинный способ работы с WSL из Visual Studio?Как я могу сказать VS, что не нужно запускать rsync?