版本
问题
我在 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 restore
Dockerfile 中的行。
检查权限后,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"]
我遇到了同样的问题,并将 linux 内核从 5.0.0-27-generic 降级到 5.0.0.-25-generic 修复了它。
作为 Docker 主机,我们在 Azure 上运行 Ubuntu 18.04。Azure 最近推出了内核版本 5.0.0-1018,这导致了我们 Linux 容器中的问题。降级到内核版本 4.18.0-1025 为我们修复了它。
我今天遇到了同样的问题,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,重新安装了我需要构建的一些东西。一切又恢复了。 我怀疑早上的更新打破了局面。不幸的是,我没有保留升级日志:-(
这里也有同样的问题将 Ubuntu 内核更新到最后一个版本 (5.0.0-27-generic) 解决了这个问题。
从昨天开始,我一直在努力解决同样的问题,但是问题源于 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”]
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