gpt4 book ai didi

c# - 无法让 costura.fody 将 dll 嵌入到 exe 中

转载 作者:行者123 更新时间:2023-12-05 02:40:34 24 4
gpt4 key购买 nike

我尝试将类库的 dll 嵌入到我的 exe 中。我使用 visual studio 2019 和 .net 5。我在一个解决方案中创建了两个项目一个是类库(dll),第二个是控制台应用程序两者都针对 .net core 5。我选择控制台应用程序作为启动项目。类库只包含打印出 hello 的 public static hello 函数。我将类库的项目引用到控制台应用程序中,然后在控制台应用程序中我只调用了 ClassNamespace.library.hello 函数。当我编译它时,它工作正常。然后我按照他们的自述文件中的描述安装了 costura.fody,我通过以下方式将其添加到控制台项目:

PM> Install-Package Fody
PM> Install-Package Costura.Fody

然后我将FodyWeavers.xml放入工程文件夹

<Weavers>
<Costura/>
</Weavers>

在那之后我重建了项目,它建立了,exe 正在运行,但是当我从输出目录中删除 .dll 时,.exe 没有运行。

最佳答案

这可以在没有任何额外包的情况下完成。从 NET 5 开始,您必须设置两个选项。

<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net5.0</TargetFramework>
<!-- To publish just a single *.exe file -->
<PublishSingleFile>true</PublishSingleFile>
<!-- Specify for which runtime you want to publish -->
<RuntimeIdentifier>win10-x64</RuntimeIdentifier>
<!-- Since NET 5 specify this if you want to also pack all external *.dll to your file -->
<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>
<!-- Add trimming for a smaller file size if possible--->
<PublishTrimmed>true</PublishTrimmed>
</PropertyGroup>

IncludeNativeLibrariesForSelfExtract 设置为 false

enter image description here

IncludeNativeLibrariesForSelfExtract 设置为 true

enter image description here

Documentation for publish single file

Documentation for trimming

关于c# - 无法让 costura.fody 将 dll 嵌入到 exe 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68502368/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com