在 Jenkins 执行 dotnet publish 编译脚本报错, 相同脚本直接在终端执行却正常 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Weiney
V2EX    Linux

在 Jenkins 执行 dotnet publish 编译脚本报错, 相同脚本直接在终端执行却正常

  •  
  •   Weiney 2022-11-02 14:06:01 +08:00 1715 次点击
    这是一个创建于 1082 天前的主题,其中的信息可能已经有所发展或是发生改变。

    尝试在 Jenkins 内执行.Net 的编译打包操作, 相同的编译命令, 在 Jenkins 的 shell 执行报错, 直接在终端用 Jenkins 的运行账户执行就没有问题.

    错误信息: error CS0227: Unsafe code may only appear if compiling with /unsafe

    查了下这个问题是需要改项目的.csproj, 增加 AllowUnsafeBlocks配置参数解决Compiler Error CS0227

    但是我检查了需要打包的项目, 这个配置是存在的, 我直接在终端执行编译命令也没问题, 单单是在 Jenkins 执行就报错了, 困扰了很久, 希望有大神给点解决思路

    有尝试将 Jenkins Job 执行时的临时文件 /tmp/jenkinsxxx.sh 拷贝出来在终端直接执行, 执行正常没有报错, 问题只出现在 Jenkins

    附上相关环境信息:

    Jenkins 2.361.2 dotnet 5.0.214

    7 条回复    2022-11-04 11:38:29 +08:00
    XXWHCA
        1
    XXWHCA  
       2022-11-02 14:10:46 +08:00
    感觉问题是出在 jenkins 的环境问题,jenkins 的环境和 path 环境配置的并不一样
    Weiney
        2
    Weiney  
    OP
       2022-11-02 14:17:56 +08:00
    @XXWHCA 这个有考虑过, Jenkins 执行 Shell 也是通过 系统创建的 jenkins 账户执行的, 我也尝试过登陆到 jenkins 的账户直接在 Job 的 workspace 执行 Jenkins 生成的脚本, 执行是没问题的.

    而且我有对比两种执行环境的 env, Jenkins 的 Shell 执行环境出了增加了部分 Jenkins 的系统环境变量, 其他的例如 Path 等都是一模一样的
    lqy2575395
        3
    lqy2575395  
       2022-11-02 14:31:42 +08:00
    hao lei ya
    wdwwtzy
        4
    wdwwtzy  
       2022-11-02 14:36:48 +08:00
    msbuild 后面加 /p:AllowUnsafeBlocks=true 参数试试呢
    lm93129
        5
    lm93129  
       2022-11-02 14:37:54 +08:00
    建议吧需要的环境变量在对应的脚本里面重新配置一次,这样在不同的环境中,也可以正常读取到环境变量
    wu00
        6
    wu00  
       2022-11-02 1:39:16 +08:00
    确定你 /tmp/jenkinsxxx.sh build 的目标是 jenkins workspace 下的项目,比如你在终端 build 的是 AllowUnsafeBlocks=true 的 csproj ,而 workspace 下的 csproj 是 false
    Weiney
        7
    Weiney  
    OP
       2022-11-04 11:38:29 +08:00
    解决了家人们,虽然我也不知道什么原因,因为项目是拉取 SVN 进行构建的,出问题时 SVN 的拉取策略是`Use 'svn update' as much as possible, with 'svn revert' before update`,修改为`Always check out a fresh copy`问题就解决了,反正现在能正常跑起来,但是每次构建都去全量拉项目的确实有点耗时
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1566 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 16:17 PVG 00:17 LAX 09:17 JFK 12:17
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86