dotnet-exec 0.4.0 released

dotnet-exec 0.4.0 released

Intro

dotnet-exec 是一个 C# 程序的命令行小工具,可以用来运行一些简单的 C# 程序而无需创建项目文件,而且可以自定义项目的入口方法,支持但不限于 Main 方法

Install/Update

dotnet-exec 是一个 dotnet tool,可以使用安装 dotnet tool 的命令来安装

安装/更新最新稳定版本:

dotnet tool update -g dotnet-execute

安装最新的 preview 版本:

dotnet tool update -g dotnet-execute --prerelease

Updates

Features

Custom Usings

在 0.4.0 版本中支持用户自定义 using 默认会包含默认的 using 引用,你也可以自定义要增加的 using

比如说下面这个示例,使用了一个 static using

dotnet-exec 'code:WriteLine(1+1);' --using "static System.Console"

输出结果如下:

11ef4047953b39089707eb033f30a1d5.png

如果不加这个引用的话就会报错

7cda115f8cb12fe6d84ba6355335d04b.png

我们也可以移除默认的 using 引用,只需要以 “-”开头就可以了,比如下面这样

b88bc8ae880faaee60818ea282c37365.png

前面可以正常编译并执行的程序就变得编译不通过了

Preview enhancement

在新版本中增加了一个 --preview 的选项来简化 --lang-version=Preview 的配置,除了 LangVersion 配置之外,还会增加一个程序集 attribute [assembly:System.Runtime.Versioning.RequiresPreviewFeatures] 来启用一些还在预览中的一些特性,从 .NET 6 开始支持正式版发布中带一些预览特性的功能,使用的话需要配置这个 attribute,所以针对 preview 增加了这个 Attribute

8e10a517f8184e159dedb11372454bb3.png

Startup type

新的版本中增加了一个 --startup-type 的选项,默认如果有多个入口会找到第一个,startup-type 可以帮助找到更加准确的入口

Reference handling refactor

之前是直接把编译好的 dll 加载到了默认的 AssemblyLoadContext,这在一般情况下没什么问题

但是在出现程序集版本冲突的时候就会报错,新的版本中会使用单独的 AssemblyLoadContext,并且修复了之前单独使用 AssemblyLoadContext 时执行代码的问题,就是因为前面介绍的 Reference Assembly,在编译时使用引用程序集,在执行时换成了包含实现的实现程序集去执行代码,这样我们在需要测试两种版本下不同的行为就会变得简单

d82870775d780fcca7f4c071a6f42032.png

Executor refactor

0.4.0 的版本中增加了 --executor-type,类似于上一个版本中的 --compiler-type,但是目前只提供了一种实现,主要为了便于更好的进行扩展

Docker support

如果你不是 dotnet 开发者,不想安装 dotnet sdk,你也可以使用 docker 来尝试它

docker run --rm weihanli/dotnet-exec:0.4.0 dotnet-exec "code:(1+1).Dump()"

a1313e7e1c16bfbd58c34153fe2dcf8c.png

docker

Bug fix

  • 修复 Linux 上 dotnet path 的问题

    在 Linux 环境上默认的 dotnet 路径并不是 dotnet 可执行文件,而是一个 symbol link 文件,需要找到对应真正的文件路径,由于代码的 BUG 导致没有转换成真正的文件路径,在 0.4.0 版本中已经修复

    5ffb27f0a3b26208f55f862515ae9eb0.png

More

目前 dotnet-exec 依赖于 SDK 环境,后面要改进一下,只需要 Runtime 环境就可以,这样 docker 镜像可以小很多,另外打算支持可以自定义引用,比如引用自己的 dll 或者指定的 Nuget 包

References

  • https://github.com/WeihanLi/dotnet-exec

  • https://www.nuget.org/packages/dotnet-execute/

  • https://hub.docker.com/repository/docker/weihanli/dotnet-exec

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/285656.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【天工Godwork精品教程】任务二:导入控制点、POS权重设置、连接点分布检查、自由空三

无人机航测精品专栏链接:《无人机航空摄影测量精品教程》 【天工Godwork精品教程】任务一:创建工程(导入相片、编辑相机参数、导入POS) 【天工Godwork精品教程】任务二:导入控制点、POS权重设置、自由空三 【天工Godwork精品教程】任务三:刺像控点、空三平差、精度优化调…

C语言试题九十二之输入数据有多行,第一行是一个整数n,表示测试用例的个数,后面跟着n行 ,每行包括一个由字母和数字组成的字符串

​ ✅作者简介:大家好我是码莎拉蒂,CSDN博客专家🥇🥇🥇 📃个人主页:个人主页 🔥系列专栏:C语言试题200例 💬推荐一款模拟面试、刷题神器👉 点击跳转进入网站 1、题目 输入 输入数据有多行,第一行是一个整数n,表示测试用例的个数,后面跟着n行,每行包括一…

Spring中Bean的实例化

在Spring中要实例化一个Bean有几种方法&#xff1a; 1、最常用的&#xff08;普通方法&#xff09; <bean id"myBean" class"www.com.org.MyBean" /> 使用这样方法&#xff0c;按Spring就会使用Bean的默认构造方法&#xff0c;即通过没有参数的构造方…

cc2530学习笔记

case KEY_CHANGE://按键事件 case AF_INCOMING_MSG_CMD://接收数据事件,调用函数AF_DataRequest()接收数据 case ZDO_STATE_CHANGE: //只要网络状态发生改变&#xff0c;就通过ZDO_STATE_CHANGE事件通知所有的任务。 //同时完成对协调器&#xff0c;路由器&#xff0c;终端的设…

【天工Godwork精品教程】任务三:刺像控点、空三平差、精度优化调整

无人机航测精品专栏链接:《无人机航空摄影测量精品教程》 【天工Godwork精品教程】任务一:创建工程(导入相片、编辑相机参数、导入POS) 【天工Godwork精品教程】任务二:导入控制点、POS权重设置、自由空三 【天工Godwork精品教程】任务三:刺像控点、空三平差、精度优化调…

.NET in China - What's New in .NET

点击蓝字关注我们编辑&#xff1a;Alan Wang排版&#xff1a;Rani Sun活动介绍去年11月&#xff0c;.NET 6 的发布&#xff0c;为我们带来了 .NET 多平台应用 UI&#xff08;.NET MAUI&#xff09;。就在前不久&#xff0c;.NET MAUI 已正式发布。未来&#xff0c;作为 .NET 7 …

Android之网络请求提示Cleartext HTTP traffic to dev*******.com not permitted

1、问题 请求服务端网络错误提示错误如下 Cleartext HTTP traffic to dev*******.com not permitted2、解决办法 Android9.0 默认是禁止所有的http,AndroidManifest.xml添加如下 android:usesCleartextTraffic="true"同时在res目录新建文件夹xml,放入network_se…

[转].NET 开源项目 Anet 介绍

使用 Anet 有一段时间了&#xff0c;已经在我的个人网站&#xff08;如 bookist.cc&#xff09;投入使用&#xff0c;目前没有发现什么大问题&#xff0c;所以才敢写篇文章向大家介绍。 GitHub 地址&#xff1a; https://github.com/anet-team/anet Anet 是一个 .NET Core 通用…

【天工Godwork精品教程】任务四:EOS正射影像DOM生成,DOM精编

无人机航测精品专栏链接:《无人机航空摄影测量精品教程》 【天工Godwork精品教程】任务一:创建工程(导入相片、编辑相机参数、导入POS) 【天工Godwork精品教程】任务二:导入控制点、POS权重设置、自由空三 【天工Godwork精品教程】任务三:刺像控点、空三平差、精度优化调…

强烈推荐国内几款优秀的开源电商系统

一、背景需求 我玩得好的朋友刚创业&#xff0c;搞电商最一块&#xff0c;想做个全套的电商框架系统&#xff0c;希望支持公众号、小程序、H5、pc后台管理等功能&#xff0c;创业初期资金非常紧张&#xff0c;请开发人员做成本太高&#xff0c;然后就咨询我&#xff0c;有没有最…

Maui的学习之路(二)--设置

Maui的学习之路&#xff08;二&#xff09; -- 设置上一篇我们做了Maui的基本介绍&#xff0c;理论上这一篇应该会创建第一个Maui的应用&#xff0c;以便对此进行详细的评估&#xff0c;并逐步深入。如果你需要进行Maui首个应用的创建&#xff0c;那么欢迎访问.NET MAUI 创建移…

今天,Java编程周末提高班(第一期)正式结束

Java编程周末提高班&#xff08;第一期&#xff09;&#xff0c;走过了近两个月历程&#xff0c;一共同拥有68人次学生周末到老师家进行Java学习与交流。近距离的和一群年轻的学习接触&#xff0c;收获非常多&#xff0c;特别是对以后教学的改进。在学习的闲暇。大家自己做饭&a…

基本反射了解

1 package cn.wh;2 /**3 * java.lang.Class4 * author 王恒5 * time 2016年11月2日 上午10:39:256 */7 public class RedlectTest {8 public static void main(String[] args) throws ClassNotFoundException, InstantiationException, IllegalAccessException {9 …

【PhotoScan精品教程】任务四:PhotoScan做空三+CC生成正射、三维建模综合案例

《无人机航空摄影测量精品教程》合集目录(Pix4d、CC、EPS、PhotoScan、Inpho、GodWork) 【PhotoScan精品教程】任务一:新建工程、导入照片、设置坐标系、导入控制点(POS)、自由空三 【PhotoScan精品教程】任务二:刺像控点,平差,质量报告精度检查,像控点POS权重调配 【…

[转]让.NET应用秒变微服务

随着近年来微服务的发展&#xff0c;许多团队开始将自己的单体应用改造为微服务。通常Java或Go的应用可以通过业界已有的微服务框架作为微服务开发和改造的底座&#xff0c;封装掉解决跨网络问题带来的复杂性。但以Chassis模式进行的微服务改造有两大问题&#xff1a;多语言框架…

C语言九十三之输入一个字符x,找到输入的那句话(字符串)里面一样字母的位置。

📃个人主页:个人主页 🔥系列专栏:C语言试题200例目录 💬推荐一款刷算法、笔试、面经、拿大公司offer神器 👉 点击跳转进入网站 ✅作者简介:大家好,我是码莎拉蒂,CSDN博客专家(全站排名Top 50),阿里云博客专家、51CTO博客专家、华为云享专家 1、题目 输入一个字…

WPF 使用 MAUI 的自绘制逻辑

这是一个当前还没开发完成的功能&#xff0c;准确来说连预览版也算不上的功能。我原本以为 MAUI 是无法在 WPF 上面跑的&#xff0c;然而在看完了 MAUI 整个大的设计&#xff0c;才了解到&#xff0c;原来 MAUI 是一个非常庞大的开发项目。在 MAUI 里面&#xff0c;虽然现在是正…

[转]redis 5.0.5 5分钟搭建redis集群

环境&#xff1a;centos 7 1&#xff1a;下载并安装redis ​​​​​​​$ wget http://download.redis.io/releases/redis-5.0.5.tar.gz$ tar xzf redis-5.0.5.tar.gz$ cd redis-5.0.5$ make redis 5.0版本 集群搭建不需要我们安装ruby就可以搭建成功&#xff0c;并且redis…

【土地评价与土地管理】案例:某地区柑橘种植适宜性评价

文章目录 一、确定评价单元二、评价因子选择三、评价因子权重的确定四、构建评价分级标准五、综合评价六、适宜性等级划分七、得出适宜性评价结果柑橘种植所需的自然条件: 柑橘果树生长发育、开花结果与温度、日照、水分(湿度)、土壤以及风、海拔、地形和坡向等环境条件紧密相…

django中怎样生成非HTML格式的内容。

某些时候可能有这种需求。在网页中点击一个链接或者一个button希望返回一张图片、一个pdf文档、一个csv文档等而非HTML。在diango中非常easy做到这些。django中的view用来接收http request并返回web response。通常情况下&#xff0c;返回的内容为HTML&#xff0c;但其可以返回…