Синхронизация исходного кода в проекте Visual Studio CMake и WSL - PullRequest
0 голосов
/ 16 октября 2018

У меня есть большое решение, где часть проектов - это классические проекты 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?

...