.net-core - .NET Core:发布自包含应用程序时,将 .exe 与其他库分开
问题描述
当你现在发布一个 .NET Core 自包含应用程序时,你的 exe 与所有 Nuget 包一起位于几十个 .NET Core 运行时库的中间。
MyApp/
--ct/
--de/
--es/
...
--zh-Hant/
--Accessibility.dll
--api-ms-win-core-console.dll
... A dozen other .dlls
--MyApp.dll
--MyApp.exe
... Even more .dlls
我想设置发布以便组织这些文件,就像这样
MyApp/
--netcoreapp3.0/
--nuget/
--MyApp.dll
--MyApp.exe
甚至
MyApp.exe
MyApp/
--netcoreapp3.0/
--nuget/
--MyApp.dll
或者,也许有一种方法可以更改 .csproj<TargetFramework>
标记中框架库的目录?这样,我可以使用依赖于框架的发布选项并删除所有重复文件。
解决方案
如果没有使用依赖于框架的发布选项的限制,您可以PublishSingleFile
使用true
.
您的发布命令将是
dotnet publish -c Release -r win-x64 /p:PublishSingleFile=true
然后在您的发布文件夹中,您将找到可执行文件的“更干净”结果,以及一些配置文件(如 appsettings.json 或 web.config)。没有 nuget 或运行时 dll。
推荐阅读
- python - 如何摆脱 TypeError:strptime() 参数 1 必须是 str,而不是在 read_csv 中浮动?
- amazon-ec2 - Hazelcasts 尝试指定以外的端口
- php - PHP 上一行 col 值在下一行 col union-all
- c# - DataGridView 线程刷新数据
- vb.net - VB.NET中带发票分割的分期付款系统
- mysql - SQL左连接不包括左表中的所有记录
- azure-aks - 如何将 AKS 自定义节点配置与 terraform 一起使用?
- razor - 如何从 BlazorWebassambly 中删除元素/组件
- apache-spark - 其他提供商上的 Spark History Server
- libpcap - 我的程序中使用 libpcap 的问题