为何.NET Core控制台项目发布后是一个dll文件,而不是exe文件?
项目中有一个.NET Core控制台项目叫ConsoleCoreApp,写好代码后准备发布:
结果发布后生成的是一个dll文件。。。为不是一个exe的可执行文件:
后来了解到.NET Core的项目分为两种发布方式,一种叫Framework-dependent deployments (FDD),还有一种叫Self-contained deployments (SCD),这两种发布有何区别可以查看微软的官方文档。
而默认情况下.NET Core控制台项目的发布方式为Framework-dependent deployments (FDD),这种方式生成的就是dll文件,需要用"dotnet ConsoleCoreApp.dll"指令来运行。而如果在发布的时候选择Self-contained deployments (SCD)方式,生成的就是exe文件。
现在我们还是在项目上选择发布,不过这次我们在发布前先配置发布选项,点击配置:
有两个选项需要更改,一个是部署模式,我们这次选为:独立(即Self-contained deployments (SCD)模式),然后目标运行时选为:win-x64(这个选项和你部署后的操作系统有关),然后点保存。
然后再次发布:
这次我们可以看到发布后生成的就是exe文件了,但是很明显由于Self-contained deployments (SCD)模式会将所有.NET Core的系统程序集也都生成出来,会造成发布后的发布文件数量增加,整个项目的程序文件变大,这一点要注意!
为何.NET Core控制台项目发布后是一个dll文件,而不是exe文件?的更多相关文章
- 【C#程序集】为何.NET Core控制台项目发布后是一个dll文件,而不是exe文件?
因为 .NET Core 的控制台应用默认是生成 dll 文件,而没有对应的 exe 文件.如下图所示,是在VS中编译后生成的结果 图中看到的TestVisualizer.exe 只是一个快捷方式, ...
- ASP.NET CORE MVC 2.0 如何在Filter中使用依赖注入来读取AppSettings,及.NET Core控制台项目中读取AppSettings
问: ASP.NET CORE MVC 如何在Filter中使用依赖注入来读取AppSettings 答: Dependency injection is possible in filters as ...
- 新建 .NET Core 控制台项目 C# 数组深拷贝
新建 .NET Core 控制台项目 1. 安装 .NET Core SDK 1.0 参考微软官方网站 https://www.microsoft.com/net/download/windows 2 ...
- 将Python文件打包为exe文件,并在控制台运行之简易教程
第一步 在线安装 pyinstaller. 方法:打开win+ R,输入cmd,在命令行输入"pip install pyinstaller" 静等几分钟后即可安装成功. ...
- vue项目发布后带路径打开页面报404问题
环境: 后端,python+uwsgi启动 前端:vue 用nginx运行,指定静态目录 问题 :发布后带路径打开页面报404问题,带路径打开即不是打开的主页 解决方案: https://route ...
- Web项目发布后字体文件找不到
一.问题 ①ASP.NET项目,开发工具Visual Studio ②在IIS上发布之后,网页控制台报错,某某文件找不到,但是在服务器文件夹中看明明有那个文件 二.解决方法 ①>>打开II ...
- 新建 .NET Core 控制台项目
1. 安装 .NET Core SDK 1.0 参考微软官方网站 https://www.microsoft.com/net/download/windows 2. 打开命令提示符:输入以下代码验证S ...
- .NET Core 控制台项目中的Nuget打包类库及引用
由于使用的是MAC版本的VSCode,所以全部是通过dotnet命令来完成的. 1.dotnet new lib 创建类库项目: 2.编辑项目根目录下的.csproj文件,添加版本号(建议): < ...
- ASP.NET Core Web 项目 发布的IIS7提示“HTTP Error 502.5 - Process Failure
原因就是NUGET引用的DLL和SDK的版本不对, 你打开CMD,在项目bin目录运行dotnet xxx.dll, 会看到具体错误信息 所以你要么引用低版本的dll,要么升级最新SDK
随机推荐
- webpack执行过程
webpack-cli 执行过程 1.webpack.config.js,shell options参数解析 2.new webpack(options) 3.run() 编译的入口方法 4.comp ...
- 【数据库】10.0 MySQL常用语句(一)
显示数据库语句: SHOW DATABASES 只是显示数据库的名字 显示数据库创建语句: SHOW CREATE DATABASE db_name 数据库删除语句: DROP DATABASE ...
- drupal7 获取网站名称
$site_name=variable_get('site_name', 'Drupal');
- 安卓性能优化之清除Handler的Message和Runnable
安卓性能优化之清除Handler的Message和Runnable Handler是由系统所提供的一种异步消息处理的常用方式,一般情况下不会发生内存泄露. 但既然是调优,当在A_Activity中使用 ...
- Python学习---Python数据类型1206
1.1. 字符串格式化 字符格式化输出 占位符 %s s = string %d d = digit 整数 %f f = float 浮点数,约等于小数 #version: python3.2 ...
- ISA 连接非443端口的https站点提示错误
ISA 连接非443端口的https站点提示错误:12204 The specified Secure Sockets Layer (SSL) port is not allowed. ISA Ser ...
- Mysql进阶-day3
多实例介绍: mysql多实例就是一台服务器开启多个不同的服务端口(3306,3307),运行多个MySQL服务进程,这些服务进程通过不同的socket监听不同的服务端口来提供各自的服务端口. 这些m ...
- ZT Android的引用计数(强弱指针)技术及一些问题
Android的引用计数(强弱指针)技术及一些问题 分类: Android 2013-06-07 18:25 844人阅读 评论(4) 收藏 举报 目录(?)[+] Android C++框架层的引用 ...
- iframe加载方案及性能
普通方法加载iframe 在onload之后加载iframe setTimeout来加载iframe 友好型iframe加载 转载地址:翻译文章-iframe异步加载技术及性能 英文原文:Iframe ...
- 更改mysql数据存储路径
1.检查mysql数据库存放目录 mysql -u root -prootadmin show variables like '%dir%'; quit; (查看datadir 那一行所指的路径) 2 ...