csharp 这回真成了脚本语言: dotnet run app.cs - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Need4more
V2EX    .NET

csharp 这回真成了脚本语言: dotnet run app.cs

  •  1
     
  •   Need4more 78 天前 3457 次点击
    这是一个创建于 78 天前的主题,其中的信息可能已经有所发展或是发生改变。

    dotnet 10 支持直接运行 cs 源文件

    引用三方包

    #:package [email protected] using Humanizer; var dotNet9Released = DateTimeOffset.Parse("2024-12-03"); var since = DateTimeOffset.Now - dotNet9Released; Console.WriteLine($"It has been {since.Humanize()} since .NET 9 was released."); 

    linux shebang

    #!/usr/bin/dotnet run Console.WriteLine("Hello from a C# script!"); 
    chmod +x app.cs ./app.cs 

    https://devblogs.microsoft.com/dotnet/announcing-dotnet-run-app

    v 站的 dotnet 节点好冷清~~~

    27 条回复    2025-08-17 14:44:38 +08:00
    SwaggyMacro
        1
    SwaggyMacro  
       78 天前
    是的,V 站写 C# 的应该很少。
    这个我之前也看到了,好事儿!
    songpengf117
        2
    songpengf117  
       78 天前 via iPhone   4
    “直接运行” 跟脚本语言 不能划等号
    quan01994
        3
    quan01994  
       78 天前
    不冷清 。

    不过对于我说,这个不吸引我 。
    wdv2ly
        4
    wdv2ly  
       78 天前 via Android
    看起来跟多年前的 csscript 没啥区别
    imydou
        5
    imydou  
       78 天前 via iPhone   3
    go run main.go
    profchaos
        6
    profchaos  
       78 天前
    fsharp: 这下真的底裤都被拿走了
    aloxaf
        7
    aloxaf  
       78 天前
    tcc -run main.c
    duzhuo
        8
    duzhuo  
       78 天前
    @songpengf117 可以写脚本的语言
    timy007
        9
    timy007  
       78 天前
    很棒 但是国内没人用吧
    liuliuliuliu
        10
    liuliuliuliu  
    PRO
       78 天前   1
    最新的 preview6 里的优化还有几点:
    1. 可以直接 dotnet app.cs ,不用加 run 了
    2. shebang 里也可以不用加 run 了,直接 #!/usr/bin/dotnet
    xingheng
        11
    xingheng  
       78 天前
    这么说的话连 Swift 都成“脚本语言”了,所有支持 REPL 的语言都是了。
    zwzwzwzwzxt
        12
    zwzwzwzwzxt  
       78 天前
    rust 也是脚本语言 /doge

    ```
    #!/bin/sh
    #![allow(unused_attributes)] /*
    OUT=/tmp/tmp && rustc "$0" -o ${OUT} && exec ${OUT} $@ || exit $? #*/

    fn main() {
    println!("hello world");
    }
    ```
    Need4more
        13
    Need4more  
    OP
       78 天前
    @wdv2ly
    肯定是借鉴了社区的现有项目,但这次是官方内置了。

    这个博客详细说明了其特性和背后实现原理
    https://andrewlock.net/exploring-dotnet-10-preview-features-1-exploring-the-dotnet-run-app.cs/

    其中有两个命令很有意思:
    `dotnet publish app.js` 一键发布脚本为 aot 过的单文件 exe

    `dotnet project convert app.js` 无缝从脚本升级为项目,从原型到生产,渐进过度
    xiangyuecn
        14
    xiangyuecn  
       78 天前
    老古董.net framework 里面自带了编译器,直接拿来编译一下源码运行没啥问题

    搬出我的古董代码:.net framework 4.5+,.NET Core 2.0+,.NET 5+,直接从源码运行

    中英双语,win 、linux 均可用

    https://github.com/xiangyuecn/RSA-csharp/blob/master/Test-Build-Run.bat

    https://github.com/xiangyuecn/RSA-csharp/blob/master/Test-Build-Run.sh
    Need4more
        15
    Need4more  
    OP
       78 天前 via iPhone
    @xiangyuecn 很棒!有没有考虑用 dotnet aot 重写这两个脚本
    idragonet
        16
    idragonet  
       77 天前
    NET 程序员支持下!
    INCerry
        17
    INCerry  
       77 天前
    其实这个功能挺有用的,有时候写一些脚本不想用 shell ,python 不一定装了环境,还是用熟悉的编程语言会比较方便
    Bronya
        18
    Bronya  
       77 天前
    很棒啊,之前还得装 dotnet-script
    nilaoda
        19
    nilaoda  
       77 天前
    @Need4more 社区项目 https://github.com/bflattened/bflat 也可以直接将 cs 文件编译为 Native AOT 版本
    xomix
        20
    xomix  
       77 天前
    这功能当年是官方 dot net 教程第一个例子就会写出来的。
    这真是肯德基吮指原味鸡 鸡排 限时回归大促。
    magicdawn
        21
    magicdawn  
       77 天前
    kzfile
        22
    kzfile  
       77 天前
    c#写起来蛮舒服的,做一些特定的二次开发也只能用 c#,就是生态没那么丰富
    liaohongxing
        23
    liaohongxing  
       77 天前
    go 也可以 go run main.go , 但是只是个快捷方式 ,build + run 一起执行而已 ,并不是传统意义上的脚本 ,不知道 .net 是否 是这样, 我想应该也是跟 go 一样的,不可能另造一个脚本解析器。
    Need4more
        24
    Need4more  
    OP
       77 天前
    @nilaoda 不错!优势在于生成的二进制很小,可是还不支持 mac ,不支持 nuget 包
    ragnaroks
        25
    ragnaroks  
       77 天前
    能替代 .ps1 就好,ps 真的一坨狗屎
    dmanbu
        26
    dmanbu  
       77 天前
    powershell 可以去死了
    shiloh595
        27
    shiloh595  
       53 天前 via Android
    古德古德
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     887 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 22:05 PVG 06:05 LAX 15:05 JFK 18:05
    Do have faith in what you're doing.
    ubao 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