MSBuild 未处理异常: 除非设置了 UseShellExecute,否则 FileName 属性不应是目录

共6个回答,已解决, 标签: c# asp.net docker

版本

  • Dotnet 核心 sdk: 2.1.403
  • 码头工人: 18.09.7
  • Linux 内核: 5.0.0-27
  • Ubuntu: 18.04.3

问题

我在 docker 中运行一个 ASP.NET 核心项目。当我码头工人组成时,我会得到以下信息:

未处理的异常: Microsoft.Build.后端.Nodefailedaununchexception: 除非设置了 UseShellExecute,否则 FileName 属性不应是目录。->System.ComponentModel.Win32Exception: 除非设置了 UseShellExecute,否则 FileName 属性不应是目录。
在系统。诊断。进程。启动核心 (进程启动信息)
在系统。诊断。过程。开始 ()
在 System.Diagnostics.Process.Start (Process Start info)
在 Microsoft.Build.后端.NodeProviderOutOfProcBase.LaunchNode (字符串 msbuild location,字符串命令 lineargs)
-内部异常堆栈跟踪的结束-
在微软。构建。命令行 MSBuildApp。 build project (字符串项目文件、字符串 [] 目标、字符串工具版本、词典的 2 个全局属性、词典的 2 个恢复属性、 ILogger [] 记录器、详细信息、 textWriter 预处理器、布尔详细摘要、 iset '1 警告错误、 iset' 1 警告消息、布尔 enableRestore 、 ProfilerLogger profilerLogger 、布尔启用
在 Microsoft.Build.Command line.MSBuildApp.Execute (字符串 [] 命令行)
在 Microsoft.Build.Command line.MSBuildApp.Main (字符串 [] args)

当它点击时,错误似乎发生了dotnet restoreDockerfile 中的行。

检查权限后,docker 似乎对直接涉及的所有文件/文件夹都有读/写权限

今天早上,这篇文章中的其他人说他们也有一些更新。是否相同的更新是未知的。但是有一些更新。这是我从早上开始的更新日志.

我的文档是这样的:

来自 microsoft/dotnet: 2.1.403-sdk 作为 dotnet

WORKDIR/vsdbg

运行 apt-get update
& & Apt-get 安装-y-不安装-建议 \
解压 \
& & Rm-rf/var/lib/apt/list/* \
& & Curl-sSL https://aka.ms/getvsdbgsh | bash/dev/stdin-v 最新款-l/vsdbg

WORKDIR/ProjA

# 安装 j-> JUnit 日志文件转换器
Https://github.com/gfoidl/trx2junit
运行 dotnet 工具安装-g trx2 junit
运行导出路径 = "$ PATH:/root/.dotnet/tools"

复制 ProjA.sln。
复制 ProjA/ProjA.csproj。/ProjA/
复制 ProjA。测试/ProjA。测试。csproj。/ProjA.测试/
复制 ProjB/ProjB.csproj。/ProjB/
复制 ProjC/ProjC.csproj。/ProjC/

运行 mkdir ProjA.Tests/tmp

运行 dotnet restore # 这里似乎发生了错误.

复制。

工作目录/ProjA/

CMD ["dotnet" "run"]
第1个答案(采用)

我遇到了同样的问题,并将 linux 内核从 5.0.0-27-generic 降级到 5.0.0.-25-generic 修复了它。

第2个答案

作为 Docker 主机,我们在 Azure 上运行 Ubuntu 18.04。Azure 最近推出了内核版本 5.0.0-1018,这导致了我们 Linux 容器中的问题。降级到内核版本 4.18.0-1025 为我们修复了它。

第3个答案

我今天遇到了同样的问题,docker 文件已经运行了几个月了。 有一些回购工作,但其他人根本没有。没有任何变化。Docker 文件运行失败,并出现了同样的错误 “MSBuild 未处理异常: 除非设置了 UseShellExecute,否则 FileName 属性不应是目录”。 我最初使用 docker 18.09.7,升级到 19.3.2,但这没有帮助。

我正在运行 Ubuntu 18.04.3,并注意到早上安装了一些更新。 这是一个简单的构建系统,很少安装 (VS Code,Gitkraken,docker,docker-compose)

由于我的一些构建失败,我找不到罪魁祸首,我重新安装了 并降级到 Ubuntu 18.04.2,重新安装了我需要构建的一些东西。一切又恢复了。 我怀疑早上的更新打破了局面。不幸的是,我没有保留升级日志:-(

第4个答案

这里也有同样的问题将 Ubuntu 内核更新到最后一个版本 (5.0.0-27-generic) 解决了这个问题。

第5个答案

从昨天开始,我一直在努力解决同样的问题,但是问题源于 ubuntun,因为我在 kali linux 上没有问题地创建和工作, 但是尽管我尝试了 18.04 和 19.04,我仍然收到了错误。

Docker 版本

版本: 19.03.2
API 版本: 1.40
Go 版本: go1.12.8
Git 提交: 6a30dfc
建筑: Thu 8月29日 05:29:11 2019
操作系统: linux/amd64
实验: 假

文档文件

来自 microsoft/dotnet: 2.1-sdk 作为构建
复制。项目/
工作目录/项目
运行 dotnet 还原 dotnet.sln

从构建到发布
工作目录/项目/
运行 dotnet 公布 dotnet.sln-c 版-o/app

来自 microsoft/dotnet: 2.1-aspnetcore-运行时
复制。项目/
WORKDIR/app
曝光 8003

从最终运行时起
WORKDIR/app
复制-从 = 发布/应用程序。
入口点 [“dotnet” 、 “dotnet.dll”]
第6个答案

Ubuntu 上已经确认了这个 bug: [Https://bugs.launchpad.net/ubuntu/ 源码/linux/bug/1843018](https://bugs.launchpad.net/ubuntu/ source/linux/ bug/1843018)

相关。Net 核心问题: Https://github.com/dotnet/corefx/issues/40850

相关问题

什么是 Null 引用异常, 以及如何修复它? 什么是 Null 引用异常, 以及如何修复它? 如何将 bool 更改为0或 1, 我可以将其转换为0或1? 我如何将这个条件更改为我想要的 MSBuild 未处理异常: 除非设置了 UseShellExecute,否则 FileName 属性不应是目录 是否可以在一个共同的地方设置样式和 JavaScript 引用,并使用它所有的 HTML 页面? 如何解决 Alpine docker 容器内烧瓶应用 Gunicorn exec 上提出的 “oserror: libc 未找到” 缺少 inotify 事件 (在。Git 目录