Я пытаюсь создать USBView, один из примеров драйверов Windows. Я скачал это с Github вчера.
Проблема в том, что Visual Studio пытается найти компилятор ресурса в корне, \ rc.exe. Этот каталог \, очевидно, не существует, поэтому указание реального местоположения и размещение его в пути не имеет отношения к x86 или x64. Visual Studio нужно найти rc.exe
не \rc.exe
просто я не знаю откуда вытащил VS \
,
Я даже зашел так далеко, что добавил каталог в системную переменную PATH (и перезагрузился):
Я видел эта публикация на SO, который предложил добавить Microsoft.Net.Compilers в проект с помощью диспетчера пакетов NuGet. Это предложение не удалось.
Что бы это ни стоило, вот скриншот VS:
Вывод диагностики из сборки менее полезен.
1>Target "BeforeResourceCompile" in file "C:\Program Files (x86)\Microsoft\Visual Studio\2017\Enterprise\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets":
1>Done building target "BeforeResourceCompile" in project "usbview.vcxproj".
1>Target "MakeDirsForResourceCompile" in file "C:\Program Files (x86)\Microsoft\Visual Studio\2017\Enterprise\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets":
1> Added Item(s): RcDirsToMake=C:\Users\Sarah\Downloads\Projects\Windows-driver-samples-master\usb\usbview\Debug
1> Task "MakeDir"1> Task Parameter:Directories=C:\Users\Sarah\Downloads\Projects\Windows-driver-samples-master\usb\usbview\Debug
1> Done executing task "MakeDir".
1> Removed Item(s): RcDirsToMake=C:\Users\Sarah\Downloads\Projects\Windows-driver-samples-master\usb\usbview\Debug
1>Done building target "MakeDirsForResourceCompile" in project "usbview.vcxproj".
1>Target "_SelectedFiles" skipped. Previously built successfully.
1>Target "SelectCustomBuild" skipped. Previously built successfully.
1>Target "SelectResourceCompile" in file "C:\Program Files (x86)\Microsoft\Visual Studio\2017\Enterprise\Common7\IDE\VC\VCTargets\Microsoft.CppBuild.targets":
1>Done building target "SelectResourceCompile" in project "usbview.vcxproj".
1>Target "ResourceCompile" in file "C:\Program Files (x86)\Microsoft\Visual Studio\2017\Enterprise\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets":
1> Using "RC" task from assembly "C:\Program Files (x86)\Microsoft\Visual Studio\2017\Enterprise\Common7\IDE\VC\VCTargets\Microsoft.Build.CppTasks.Common.dll".
1> Task "RC"1> Task Parameter:Source=uvcview.rc
1> Task Parameter:
1> AdditionalIncludeDirectories=
1> Debug\
1> C:\Program Files (x86)\Microsoft\Visual Studio\2017\Enterprise\VC\Tools\MSVC\14.16.27023\atlmfc\include
1> Task Parameter:Culture=0x0409
1> Task Parameter:
1> PreprocessorDefinitions=
1> _X86_=1
1> i386=1
1> STD_CALL
1> WIN32_LEAN_AND_MEAN=1
1> _WIN32_WINNT=0x0A00
1> WINVER=0x0A00
1> WINNT=1
1> NTDDI_VERSION=0x0A000004
1> DBG=1
1> SMP_ID=\"{54E86405-9C3D-4F0F-B65C-AB86DE455DD7}\"1> Task Parameter:ResourceOutputFileName=Debug\uvcview.res
1> Task Parameter:SuppressStartupBanner=True
1> Task Parameter:TrackerLogDirectory=Debug\usbview.tlog\
1> Task Parameter:MinimalRebuildFromTracking=True
1> Task Parameter:ToolArchitecture=Native32Bit
1> Task Parameter:ToolPath=\
1> Task Parameter:TrackFileAccess=True
1> All source files are not up-to-date: missing command TLog "C:\Users\Sarah\Downloads\DevExpress\Projects\Windows-driver-samples-master\usb\usbview\Debug\usbview.tlog\rc.command.1.tlog".
1> C:\Program Files (x86)\Microsoft\Visual Studio\2017\Enterprise\Common7\IDE\VC\VCTargets\Microsoft.CppCommon.targets(1498,5): error MSB6004: The specified task executable location "\rc.exe" is invalid.
1> Done executing task "RC" -- FAILED.
1>Done building target "ResourceCompile" in project "usbview.vcxproj" -- FAILED.
1>
1>Done building project "usbview.vcxproj" -- FAILED.
Кажется, Microsoft обновляет Visual Studio ежедневно, если не чаще, но вот версия, на которой я сейчас набираю это предложение. У меня Windows 10 Pro x64, которая также не так плоха в отношении вечных обновлений.
Win32 совпадает с вариантом x86, но я попробовал оба варианта. Как я уже упоминал, проблема действительно заключается в \
,
Я перепробовал все варианты вышеизложенного.
Мысли?
Задача ещё не решена.
Других решений пока нет …