未找到 Jenkins dotnet 命令

问题描述 投票:0回答:4

我正在尝试在 OSX 上使用 Jenkins 在本地设置 CI,但是在尝试执行 shell 命令时遇到一些问题。以下是我尝试在 Jenkins 配置中运行的命令:

cd /Users/username/projectname
dotnet build HD-Project.sln

但是,当我尝试构建项目时,出现以下错误:

Building in workspace /Users/Shared/Jenkins/Home/workspace/HD-Build
[HD-Build] $ /bin/sh -xe 
/Users/Shared/Jenkins/tmp/jenkins2699993427980474696.sh
+ cd /Users/username/projectname
+ dotnet build HD-Project.sln
/Users/Shared/Jenkins/tmp/jenkins2699993427980474696.sh: line 3: 
dotnet: command not found
Build step 'Execute shell' marked build as failure
Finished: FAILURE

任何帮助将不胜感激,谢谢。

jenkins continuous-integration
4个回答
5
投票

我成功了,并且能够通过 Jenkins 通过执行的 shell 成功运行

dotnet
命令。

要运行

dotnet
命令,需要在 Jenkins 构建服务器上安装 .NET SDK。有关如何安装 .NET SDK 的说明可在此处找到:https://www.microsoft.com/net/learn/get-started/macos 适用于所有操作系统 - Linux、MacOS 和 Windows。


2
投票

出现这种情况是因为安装包没有将 dotnet 可执行位置添加到 PATH 环境变量中。这个问题在https://github.com/dotnet/core/blob/master/cli/known-issues.md#users-of-zsh-z-shell-dont-get-dotnet-on-the-中提到path-after-install,但显然它不仅仅影响 zsh 用户。您需要手动添加此路径。

在我的例子中,路径是 /usr/local/share/dotnet,所以我运行(从命令行):

export PATH=/usr/local/share/dotnet:$PATH

取自https://github.com/dotnet/cli/issues/4357


0
投票

对于使用 Docker 容器的用户,请参阅本文:https://medium.com/@nestor.panu/building-an-asp-net-6-application-on-docker-based-jenkins-d6c8aaf94756

基本上:

  1. 安装这些 Jenkins 插件:
    MSBuild
    .NET SDK Support
  2. 转到 Jenkins 配置页面,在新的 .NET SDK 部分下,添加您选择的新 SDK(例如 .NET 6)
  3. 在 Jenkins 作业中,确保选择了在步骤 2 中创建的 .NET SDK
  4. 还选择随附的包装器构建之一
    .NET SDK Support
  5. 运行你的工作。
  6. 如果遇到错误 134,请在 docker 容器上安装
    libicu-dev

0
投票

我遇到了同样的问题,我想向您提供对我有用的步骤。

首先你需要了解这个问题:

  • 安装.NETSDK后,dotnet可执行文件的路径尚未添加到环境变量$PATH中,因此需要手动添加。

#步骤1:运行以下命令来执行一些bash命令

  • docker exec -it jenkins-master bash。其中“jenkins-master”是您的容器名称

#第2步:找到dotnet路径

  • 运行以下命令获取 dotnet 路径

    查找/-name dotnet -type f 2>/dev/null

#步骤 3:将路径添加到 $PATH 变量

  • 运行以下命令:

    导出 PATH=$PATH:/var/jenkins_home/tools/io.jenkins.plugins.dotnet.DotNetSDK/dotnetsdk/

现在您可以运行“echo $PATH”。然后就可以发现dotnet的新路径已经添加了

但是存在一个问题,因为默认情况下 docker 容器是短暂的,一旦退出 bash,新添加的路径将不会被持久化,因此要修复它,我们需要持久化它。

#步骤 4:将 dotnet 路径保留到 $PATH 变量

  • 猫 >> ~/.bashrc <

#第5步:重启容器

现在是时候尝试一下,您将能够使用 dotnet,而无需获取可执行文件的完整路径。

希望您觉得它有用。

© www.soinside.com 2019 - 2024. All rights reserved.