MSB6004 指定的任务可执行位置“\rc.exe”无效
Posted
技术标签:
【中文标题】MSB6004 指定的任务可执行位置“\\rc.exe”无效【英文标题】:MSB6004 The specified task executable location "\rc.exe" is invalidMSB6004 指定的任务可执行位置“\rc.exe”无效 【发布时间】:2018-12-02 18:31:43 【问题描述】:我正在尝试构建 USBView,它是 Windows 驱动程序示例之一。我昨天从 Github 下载的。
问题在于 Visual Studio 试图在根目录 \rc.exe 中查找资源编译器。该目录\,显然不存在,因此指定实际位置并将其放置在路径中与x86或x64无关。 Visual Studio 需要找到 rc.exe
而不是 \rc.exe
只是我不知道 VS 从哪里拉出 \
。
我什至将目录添加到我的系统 PATH 变量中(并重新启动):
我确实在 SO 上看到了this posting,它建议使用 NuGet 包管理器将 Microsoft.Net.Compilers 添加到项目中。这个建议失败了。
不管它值多少钱,这里是 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 变体,但我确实尝试了两者。正如我所提到的,问题确实似乎是\
。
我尝试了上述所有排列。
想法?
【问题讨论】:
VS2017 通常安装在名为“Microsoft Visual Studio”的子目录中。但它是你的“微软”。哦哦。这是怎么发生的? @HansPassant 我相信遵循 MS 自己的PF/<Company Name>/<Product Name>
标准。在内部,微软就是这样做的。我只是跟进。至于“如何” 1)我希望以这种方式安装 2)MS 在安装过程中询问您要安装到哪个目录。 3)我以同样的方式组织开始菜单,这有点工作,但所有微软都在微软之下。时期。 Adobe 也是如此。
Hmya,他们没有遵循这个标准至少有二十年了,可能更久。 SDK 安装程序是出了名的薄弱。期间。
【参考方案1】:
根据此 MS 开发人员社区帖子 link 的详细信息,如果 WDK 版本与 SDK 版本不匹配,则可能会出现此错误。
就我而言,我不得不降级 SDK 版本。
【讨论】:
以上是关于MSB6004 指定的任务可执行位置“\rc.exe”无效的主要内容,如果未能解决你的问题,请参考以下文章
MSB4018 “ResolveComReference”任务意外失败
错误 MSB3103:Resx 文件无效。指定的模块无法找到
错误 MSB4018:“CreateRiaClientFilesTask”任务意外失败 - 尝试访问已卸载的 AppDomain
错误MSB4018 “ResolvePackageAssets”任务意外失败的解决方法