通过Vistual studio 将开发的wpf打包成单个exe,打包目录不包含dll文件,单个exe可以拷贝任何地方直接运行,具体操作步骤如下:
打包设置
工程结构
右击工程,在出现的菜单中点击发布按钮,跳转到发布设置页面
添加发布配置文件
发布设置入口
点击上面发布配置文件,这种配置需要.Net core 5以上版本
设置目标
设置目标
选择文件夹,点击下一步
设置特定目标
设置特定目标
选择文件夹,点击下一步
设置位置
设置打包保存相对位置
设置发布的相对位置,可以随便改,然后点击完成,关闭设置窗口
显示设置
显示设置
点击显示所有设置,设置配置文件
设置发布选项
配置文件设置
- 目标框架:默认,这里是.net8.0
- 设置部署模式为:独立
- 设置运行目标:win-64(操作系统支持运行时)
- 文件发布选项:勾选生成单个文件
配置好后,点击保存即可
点击发布
发布配置完成后
运行效果
发布后效果
打包后会生成wpfDemo.exe,同时该目录也包含dll文件,这不是我们想要的效果。如果将该exe文件拷贝到其他目录,程序无法正常运行,因为依赖了dll文件,还需要进行如下设置
修改*.csproj工程文件
双击项目,修改WpfDemo.csproj文件,添加配置
<!-- 将本机库包含在单个 .exe 文件中。这会增加 .exe 文件的大小,但减少了发布目录中的文件数量 -->
<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>
<!--尝试将所有内容(包括资源文件等)打包进单个 .exe 文件 -->
<IncludeAllContentForSelfExtract>true</IncludeAllContentForSelfExtract>
修改前
修改后
重新发布
删掉之前发布的/bin/Release文件夹,重新点击发布
无dll的发布目录
从效果图可以看到,只有exe文件,文件也变大了,说明dll文件被包含进来,可以将exe文件拷贝到任何地方直接运行。