【问题标题】:.NET Core: Separate .exe from other libraries when publishing self-contained apps.NET Core:发布自包含应用程序时将 .exe 与其他库分开
【发布时间】:2020-09-10 18:56:43
【问题描述】:

当您现在发布一个 .NET Core 独立应用时,您的 exe 位于几十个 .NET Core 运行时库以及所有 Nuget 包的中间。

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> 标签中框架库的目录?这样,我可以使用依赖于框架的发布选项并删除所有重复文件。

【问题讨论】:

  • 除非微软改变它的 .NET Core SDK,否则你不会得到你想要的。如果您真的想讨论细节,请通过 GitHub 与 Microsoft 联系,github.com/dotnet/sdk/issues

标签: .net-core


【解决方案1】:

如果没有使用依赖于框架的发布选项的限制,您可以使用PublishSingleFile 选项进行发布,true

您的发布命令将是

dotnet publish -c Release -r win-x64 /p:PublishSingleFile=true

然后在您的发布文件夹中,您会发现一个可执行文件的“更干净”结果,以及一些配置文件(如 appsettings.json 或 web.config)。 没有 nuget 或运行时 dll。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-28
    • 2018-07-30
    • 1970-01-01
    • 1970-01-01
    • 2019-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多