WPF打包成单文件

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

.Net/.Net Core

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

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

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

.Net Framework

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

Costura

CosturaFody 的一个插件,Fody 是一个专门处理 .Net 程序集的扩展工具,它允许将程序集的 IL 作为构建的一部分进行操作,Fody 通过扩展插件封装 MSBuildVisual 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>

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

发布时间:2024-08-22
其他阅读

Apple中的模糊效果

本文主要介绍在前端里比较重要的一个效果——高斯模糊效果,也有人称为毛玻璃特效。在Mac和Windows系统样式上也都在使用模糊效果。下面聚焦于Web前端中的模糊效果开发。

查看原文

在ASP.NET Core中使用过滤器

ASP.NET Core是一个高性能的Web开发框架,过滤器(Filter)在ASP.NET Core中被用于路由方法之上,可以在路由方法执行前后完成一些额外的操作。本文将会介绍在ASP.NET Core中使用 IActionFilter 实现过滤器并读取路由方法中的参数。

查看原文

记录中文名WPF应用无法启动

今年开春,突然就收到部分用户反馈软件无法启动的问题,沟通后远程查看发现应用刚启动就直接崩溃了,在Windows的事件查看器可以看到应用的崩溃日志,发现是 ucrtbase.dll 模块崩溃,错误代码 0x0000409

查看原文

扩展Serilog实现日志推送平台

最近在完成一个服务管理平台,提供可视化管理车间控制服务,包括服务的启停,日志的查看。在各服务中使用 Serilog 对日志进行记录,推送到服务管理平台,再进行统一分发,各客户端同步查看服务运行日志。

查看原文

C#中关于字符串的一些特殊点

在C#中,字符串是一个使用比较多的类型,本文会讲到字符串(string)的一些特殊点。

查看原文