猪头少年 - 云南AI专家 - 云南独立开发者
全部文章

Engineering note

WPF打包成单文件

在开发WPF程序时,有时我们需要把整个软件打包成一个文件,这样可以方便分发,本文将会介绍怎么把WPF打包成单文件形式。

.Net/.Net Core

在最新的 .Net 项目中,已经提供了单文件打包支持,只需要在项目发布时勾选即可。

https://static.scung.cn/66c0cb60-b879-4fe4-b680-911033f4b828.png

需要注意一点,新的 .Net 项目可以将整个运行时进行打包,分发的时候客户机不需要安装运行时也能运行,但是对于 WPF 程序来说,采取包含运行时发布之后打包的单文件其实并不是只有一个文件,其中还包括了 WPF 运行时一些依赖。只有框架依赖模型打包的才是单个文件。

.Net Framework

在 .Net Framework 的 WPF 项目中,并没有内置官方的单文件打包支持,我们需要使用额外的工具来完成

Costura

Costura 是 Fody 的一个插件,Fody 是一个专门处理 .Net 程序集的扩展工具,它允许将程序集的 IL 作为构建的一部分进行操作,Fody 通过扩展插件封装 MSBuild 和 Visual Studio API 功能,而 Costura 的功能就是将依赖项嵌入成资源,从而实现最终编译结果只剩下一个程序集文件。

安装

我们可以从 Nuget 上获取到 Costura 。通过vs的包管理器界面即可安装

https://static.scung.cn/4e21b502-2b14-42c7-a9ad-261a43b81dfd.png

也可以通过程序包管理控制台安装,注意:需要同时安装最新的 Fody

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

使用

我们只需要在 Fody 的配置文件中添加对应的配置项即可,配置文件为:FodyWeavers.xml,如果没有新建一个即可

<Weavers>
    <Costura />
</Weavers>

这时候我们在生成项目,就可以得到一个单文件软件,所有的动态库都被嵌入到程序集中了。

继续阅读

从文章索引继续。

这篇文章暂未归入核心专题;你仍可从全部文章中找到下一篇相关内容。

选择一条专题路线

Keep reading

相关文章

我做了一个 JSON 工作台:14 个功能,全部在浏览器本地跑继续阅读 电子印章怎么做:印章制作 + PDF 盖章骑缝章完整流程继续阅读 2026 最新 Windows 桌面应用发布免费代码签名指南:上架 Microsoft Store,使用 MSIX 分发继续阅读 我为什么做 Winsaa继续阅读

Next step

不要停在单篇文章。

沿主专题继续阅读,查看同一问题从概念到实战的完整路径。

选择一条专题路线