Need4more
V2EX  ›  .NET

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

  •  1
     
  •   Need4more · Jul 23, 2025 · 7222 views
    This topic created in 468 days ago, the information mentioned may be changed or developed.

    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 节点好冷清~~~

    29 replies  •  2026-01-23 16:49:42 +08:00
    SwaggyMacro
    SwaggyMacro
    Jul 23, 2025
    1
    是的,V 站写 C# 的应该很少。
    这个我之前也看到了,好事儿!
    songpengf117
    songpengf117
    Jul 23, 2025 via iPhone❤️4
    2
    “直接运行” 跟脚本语言 不能划等号
    quan01994
    quan01994
    Jul 23, 2025
    3
    不冷清 。

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

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

    fn main() {
    println!("hello world");
    }
    ```
    Need4more
    Need4more
    OP
    Jul 24, 2025
    13
    @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
    xiangyuecn
    Jul 24, 2025
    14
    老古董.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
    Need4more
    OP
    Jul 24, 2025 via iPhone
    15
    @xiangyuecn 很棒!有没有考虑用 dotnet aot 重写这两个脚本 😄
    idragonet
    idragonet
    Jul 24, 2025
    16
    NET 程序员支持下!
    INCerry
    INCerry
    Jul 24, 2025
    17
    其实这个功能挺有用的,有时候写一些脚本不想用 shell ,python 不一定装了环境,还是用熟悉的编程语言会比较方便
    Bronya
    Bronya
    Jul 24, 2025
    18
    很棒啊,之前还得装 dotnet-script
    nilaoda
    nilaoda
    Jul 24, 2025
    19
    @Need4more 社区项目 https://github.com/bflattened/bflat 也可以直接将 cs 文件编译为 Native AOT 版本
    xomix
    xomix
    Jul 24, 2025
    20
    这功能当年是官方 dot net 教程第一个例子就会写出来的。
    这真是肯德基吮指原味鸡 鸡排 限时回归大促。
    penisulaS
    penisulaS
    Jul 24, 2025
    22
    c#写起来蛮舒服的,做一些特定的二次开发也只能用 c#,就是生态没那么丰富
    liaohongxing
    liaohongxing
    Jul 24, 2025
    23
    go 也可以 go run main.go , 但是只是个快捷方式 ,build + run 一起执行而已 ,并不是传统意义上的脚本 ,不知道 .net 是否 是这样, 我想应该也是跟 go 一样的,不可能另造一个脚本解析器。
    Need4more
    Need4more
    OP
    Jul 24, 2025
    24
    @nilaoda 不错!优势在于生成的二进制很小,可是还不支持 mac ,不支持 nuget 包
    ragnaroks
    ragnaroks
    Jul 24, 2025
    25
    能替代 .ps1 就好,ps 真的一坨狗屎
    dmanbu
    dmanbu
    Jul 24, 2025
    26
    powershell 可以去死了
    shiloh595
    shiloh595
    Aug 17, 2025 via Android
    27
    古德古德
    niubiman
    niubiman
    Jan 23
    28
    @songpengf117 unity 说: 你再大声点?
    niubiman
    niubiman
    Jan 23
    29
    @xingheng 那你解释一下 c#在 unity 和 godot 里面是怎么回事
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1911 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 92ms · UTC 16:34 · PVG 00:34 · LAX 08:34 · JFK 11:34
    ♥ Do have faith in what you're doing.