【问题标题】:The specified task executable "cmd.exe" could not be run.The specified executable is not a valid application for this OS platform指定的任务可执行文件“cmd.exe”无法运行。指定的可执行文件不是此操作系统平台的有效应用程序
【发布时间】:2015-12-04 21:16:55
【问题描述】:

当我尝试构建任何项目时,我在Windows 10 上遇到了这个奇怪的错误。如果我在其他操作系统上构建它们,这些项目运行良好。

无法运行指定的任务可执行文件“cmd.exe”。这 指定的可执行文件不是此操作系统的有效应用程序 平台。

当我尝试检查日志时,我在 .nuget 文件夹内的 Nuget.targets 文件中找到了以下代码,我对代码进行了注释,现在项目构建良好。我不明白为什么会出错。我创建的任何新项目都运行良好...

我在Windows 8Windows Server 2008Visual Studio 2015 上使用Visual Studio 2013 Windows 10

代码

<Exec Command="$(RestoreCommand)"
      LogStandardErrorAsError="true"
      Condition="'$(OS)' == 'Windows_NT' And Exists('$(PackagesConfig)')" />
  • 此错误的原因是什么?
  • 是因为操作系统还是因为 Visual Studio?
  • 我该如何解决?我不认为评论代码是这样做的方式......

【问题讨论】:

  • 你需要修好你的机器。错误消息显示 c:\windows\system32\cmd.exe 或 c:\windows\syswow64\cmd.exe 已损坏。
  • @HansPassant 但是,如果将代码注释掉,为什么它会起作用? %windir%\system32\cmd.exe 也工作正常...
  • 不运行损坏的 cmd.exe 是一种解决方法。这几乎不是一个解决方案。
  • @HansPassant 我同意,但我看不出 cmd.exe 如果工作正常,VS 是如何损坏的......

标签: visual-studio-2013 nuget windows-server-2008 visual-studio-2015 windows-10


【解决方案1】:

在 Windows 10 上构建我的项目时发生在我身上。问题是一个文件的路径很长(超过 260 个字符)。所以,通过缩短它,我的问题解决了。

【讨论】:

  • 谢谢,浪费了这半天!!
  • @RKCoder 我去年花了 2-3 天!!
【解决方案2】:

致那些来到这里的人:

如果您收到此消息,我建议您不要,as @Hans Passant suggested,首先假设您的机器或 Windows 已损坏。

相反,我建议您怀疑是您的防病毒软件或 Carbon Black 安装造成的。

对我来说就是这样。

我的 IT 部门的某个人禁用了某个 Carbon Black 策略,然后一切又神奇地恢复了。

【讨论】:

    【解决方案3】:

    如果您在删除某些文件后开始遇到此错误:

    • 卸载您的项目
    • 编辑您的 csprok
    • 删除已删除文件的任何引用
    • 重新加载您的项目并构建

    在使用包含 Angular 应用程序的模板构建 .NetCore 应用程序时,我遇到了同样的问题,我尝试删除 ClientApp 文件夹。我不得不从 csproj 中删除多个 Target 和 ItemGroup 标签。

    【讨论】:

      【解决方案4】:

      我在使用 VS c++ OpenFrameWorks 时遇到了同样的问题。我尝试了您的建议,但无法解决问题。我以不同的方式解决了它。 索尔恩: 项目属性-> 构建事件 -> 构建后事件 -> 命令行 "robocopy "$(OF_ROOT)/export/vs/$(Platform_Actual)/" "$(ProjectDir)bin/" "*.dll" /njs /njh /np /fp /bytes if errorlevel 1 exit 0 else exit %errorlevel %"

      从命令行中删除了上面的行。 好的,解决了。

      【讨论】:

        【解决方案5】:

        我遇到了同样的错误,修复损坏的文件解决了我的问题。试试这个:

        • 在管理员命令提示符下,运行sfc /scannow
        • 它应该在%windir%\Logs\CBS\CBS.log 中发出日志文件。确认它修复了 cmd.exe。对我来说,我看到了这样的东西Repairing corrupted file [ml:48{24},l:46{23}]"\??\C:\WINDOWS\SysWOW64"\[l:14{7}]"cmd.exe" from store
        • 如果这没有帮助你可以试试DISM /Online /Cleanup-Image /RestoreHealth
        • 查看更多here

        【讨论】:

          猜你喜欢
          • 2020-01-25
          • 1970-01-01
          • 1970-01-01
          • 2017-07-01
          • 1970-01-01
          • 2014-02-11
          • 1970-01-01
          • 1970-01-01
          • 2013-01-21
          相关资源
          最近更新 更多