gpt4 book ai didi

c# - 将整个 C# 控制台应用程序打包在一个文件中?

转载 作者:太空狗 更新时间:2023-10-29 22:59:22 27 4
gpt4 key购买 nike

是否可以将整个 c# 控制台应用程序及其应用程序文件夹/文件打包到一个可执行 .exe 文件中,以便在运行时不需要安装在计算机上?

最佳答案

如果它没有很多资源 DLL(带有翻译后的字符串,在单独的子文件夹中),那么您可以使用 ILMerge 对 DLL 文件执行此操作:

http://research.microsoft.com/en-us/people/mbarnett/ilmerge.aspx

ILMerge is a utility that can be used to merge multiple .NET assemblies into a single assembly.

如果您还有其他文件,则必须将它们作为资源添加到您的程序中并在运行时提取它们。

有关如何嵌入资源文件并在运行时提取它们的更多详细信息,请参见此处:

http://support.microsoft.com/kb/319292

简而言之:将嵌入式资源添加到项目后,您可以执行以下操作:

 var assembly = Assembly.GetExecutingAssembly();
var stream = assembly.GetManifestResourceStream("MyNamespace.MyResourceFileName");

// ... do something with stream, e.g. write it out to a file.

[编辑]

您实际上可以完全取消 ILMerge,并拥有一个更强大的解决方案。

详情请看这里:http://blog.nenoloje.com/2011/08/better-alternative-to-ilmerge.html

这里:http://blogs.msdn.com/b/microsoft_press/archive/2010/02/03/jeffrey-richter-excerpt-2-from-clr-via-c-third-edition.aspx

ILMerge 的作者这样说“作为 ILMerge 的作者,我认为这太棒了!如果我知道这个,我就不会写 ILMerge”

它的作者是 Jeffrey Richter,我希望这里的大多数人都听说过他。 :)

关于c# - 将整个 C# 控制台应用程序打包在一个文件中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21454062/

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