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”任务意外失败的解决方法

错误 MSB4018 - 发布构建时“LinkAssemblies”任务意外失败

LiberOJ 6004. 「网络流 24 题」圆桌聚餐 网络流版子题