【问题标题】:Publishing .net core 5.0 into single exe file将 .net core 5.0 发布到单个 exe 文件中
【发布时间】:2020-12-03 21:57:44
【问题描述】:

谁能帮帮我。 我正在尝试将我的 .net 核心控制台应用程序发布到单个文件中。

我正在使用这个命令:

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

我希望它会创建一个文件。但是还是有dll文件:

clrcompression.dll
clrjit.dll
coreclr.dll
mscordaccore.dll

我该如何解决?我已经搜索过,但结果相同

【问题讨论】:

    标签: c#


    【解决方案1】:

    要捆绑原生库,您需要指定 IncludeNativeLibrariesForSelfExtract 标志。

    所以尝试运行这个dotnet publish -r win-x64 -c Release /p:PublishSingleFile=true /p:PublishTrimmed=true /p:IncludeNativeLibrariesForSelfExtract=true

    https://docs.microsoft.com/en-us/dotnet/core/deploying/single-file#other-considerations

    【讨论】:

    • 好吧,这可能就是我要找的。我稍后会尝试,我会反馈
    • 非常感谢
    【解决方案2】:

    要将 dotnet 运行时 dll 包含到您的可执行文件中,您还需要使用 --self-contained 标志。所以你可以运行dotnet publish -r win-x64 -c Release /p:PublishSingleFile=true /p:PublishTrimmed=true --self-contained true

    https://docs.microsoft.com/en-us/dotnet/core/deploying/single-file

    【讨论】:

    • 也已经试过了。还是一样。 i.imgur.com/lNA0sIz.png
    • 我已经试过了,得到了同样的结果。 @Anis 的回答是对的
    【解决方案3】:

    如果使用 Visual Studio,请转到 Build-> Publish [yourprojectname],编辑配置文件并选中 Produce single file。

    【讨论】:

      【解决方案4】:

      我也遇到了同样的问题,但我通过查看dotnet publish 帮助菜单找到了答案。使用以下命令 dotnet publish -r win-x64 /p:PublishSingleFile=true /p:IncludeNativeLibrariesForSelfExtract=true 这会将 .dll 嵌入到二进制文件中,因此在发布文件夹中将仅保留一个 .pdb 文件,这在运行时不是必需的。

      【讨论】:

        猜你喜欢
        • 2021-07-18
        • 2020-01-01
        • 2021-02-27
        • 2022-01-08
        • 2020-02-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多