gpt4 book ai didi

.net - 将一个 C# 项目编译成一个 dll

转载 作者:行者123 更新时间:2023-12-04 07:09:18 25 4
gpt4 key购买 nike

我有一个支持两个不同项目的基础项目。我希望能够让主项目在编译时将所有引用编译为一个 dll。

这需要是项目构建中内置的东西,以便 Jr 开发人员不必担心它。

解决方案:我最终在项目的 Post-build 操作中添加了一行,以便一个好的构建执行以下操作:

$(ProjectDir)ilmerge.exe /out: /ver: <.dll> <.dll>
ilmerge.exe已移至项目,上面的行采用给定的 dll 并创建一个。

最佳答案

(编辑此答案以更新指向新下载位置的链接并反射(reflect)新见解)

最好的办法是使用 Micorosoft's ILMerge .它曾经可以从 Microsoft Research 单独下载(它不是 VS 或 .NET SDK 的一部分)。

original version一直维持到 2012 年。现在是 NuGet package ,这是目前获取它并将其添加到您的项目和构建服务器的最佳方式。

作为替代方案,您可能想尝试 ILMerge GUI来自 CodePlex,它为 ILMerge 提供了一个 GUI 界面。它的发展被中断,但现在又活跃起来。

Codeproject article on ILMerge解释了有关如何使用它的更多信息并解释了一些用例。一个示例命令是:

ilmerge /target:winexe /out:AllInOne.exe NormalProgram.exe Lib1.dll Lib2.dll

作为替代方案,您可以使用 FodyCostura.Fody ,如本 SO response 中所述.

注意 (1):如果您需要合并并行程序集(即混合原生 64 位和 32 位程序集),您应该咨询 this SO article on loading side-by-side assemblies dynamically .

注意 (2):要将其作为构建过程的一个完整步骤,只需转到“项目属性”>“构建事件”> 单击“编辑后构建”并填写上面的命令。单击“宏”以查看如何引用当前文件或程序集。

关于.net - 将一个 C# 项目编译成一个 dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6941932/

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