.net core 2.0程序默认生成的是一个dll,需要通过dotnet命令来执行他。
dotnet ConsoleApp1.dll
这种方式有点类似于java程序。本身这种方式没有什么问题,但在调试和维护的过程中还是没有exe来的方便。在网上查了一下,貌似还没有多少介绍.net core 2.0下生成exe的方法,这里便写篇文章记录下,以备有同样需求的朋友查询。
其实.net core 2.0下生成exe的方法也比较简单,直接在生成命令上使用--runtime <rid> 即可。例如,原来编译的命令是:
dotnet build
生成带exe的命令则是:
dotnet build --runtime win-x64
此时就会在文件夹下生成一个win-x64的文件夹,里面则是有一个带exe的版本。
另外,--rumtime也可以简写为 –r,该命令可以简写如下:
dotnet build -r win-x64
发布的时候使用dotnet publish即可,
dotnet publish -c Release -r win-x64
该参数可以支持如下命令:
剩下的一个问题就是参数rid该如何选择,这里可以参看MSDN上的这篇文章:.NET Core RID Catalog。如果不想看这篇文章,对于Windows可以参考下表:
Portable |
win-x86 / win-x64 |
Win7 / 2008 R2 |
win7-x86 / win7-x64 |
Win8 / 2012 |
win8-x86 / win8-x64 / win8-arm |
Win8.1 / 2012 R2 |
win81-x86 / win81-x64 / win81-arm |
Win10 |
win10-x86 / win10-x64 / win10-arm / win10-arm64 |
由于windows本身就有一定的兼容性,这里的版本选择也不是绝对的,生成的win10-x64也可以一样在win7下面跑。当然,也可以直接选择Portable的win-x64