news 2026/9/19 1:41:49

如何搭建File Converter开发环境并参与贡献:从Visual Studio构建到Wix安装器打包指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何搭建File Converter开发环境并参与贡献:从Visual Studio构建到Wix安装器打包指南

如何搭建File Converter开发环境并参与贡献:从Visual Studio构建到Wix安装器打包指南

【免费下载链接】FileConverterFile Converter is a very simple tool which allows you to convert and compress files using the context menu in windows explorer.项目地址: https://gitcode.com/gh_mirrors/fi/FileConverter

File Converter 是一款 Windows 平台的文件转换与压缩工具,通过资源管理器右键菜单即可完成音视频、图像、Office 文档等格式转换。本文带你完整搭建 File Converter 开发环境:从克隆代码、Visual Studio 2022 编译,到用 Wix 5 打包出 MSI 安装器,并给出新手参与贡献的入门路径,全程约 30 分钟。

1️⃣ 认识项目结构:先看懂解决方案

打开仓库根目录的 FileConverter.sln 可以看到,整个解决方案由 3 个项目组成,对应三种构建目标:

项目作用
FileConverter主程序(WPF 应用,.NET Framework 4.8),所有转换逻辑都在这里
FileConverterExtension资源管理器右键菜单扩展(基于 SharpShell,需程序集签名)
InstallerWix 5 安装器工程,负责打包 MSI

主程序的依赖与构建行为都定义在 FileConverter.csproj 中:它通过 NuGet 引用了 SharpShell、Magick.NET、NetOffice 等包,并在构建后自动把ffmpeg.exe、Ghostscript 等中间件拷贝到输出目录(见该项目文件末尾的 PostBuildEvent 节点)。因此构建环境不需要你手动准备 ffmpeg,仓库已内置。

2️⃣ 开发环境快速清单:Visual Studio 2022 一键配置

按官方要求(见 README.md 的 "Setup development environment" 一节),你只需要准备:

  • Visual Studio 2022:解决方案由 VS 17 生成,建议安装".NET 桌面开发"工作负载
  • .NET Framework 4.8 开发工具包:两个 C# 项目均面向 v4.8 框架
  • Wix 5:随 NuGet 自动还原,无需手动安装;建议再装一个 Wix 的 VS 扩展以便可视化编辑
  • Windows SDK 签名工具:仅 Release 打包安装器时需要,用于签名 Installer.sign 引用的证书

然后克隆代码:

git clone https://gitcode.com/gh_mirrors/fi/FileConverter

用 Visual Studio 打开FileConverter.sln,等待 NuGet 还原完成后,把平台切换为x64(安装器只定义在 Debug|x64 / Release|x64 两种配置上)。

3️⃣ Visual Studio 构建主程序与右键扩展

直接按 F5 或选择"生成解决方案"即可,产物输出到bin\x64\下。几个新手需要知道的点:

  1. 右键扩展必须签名:FileConverterExtension.csproj 已内置FileConverterExtensionKey.snk签名密钥,构建时自动签名,无需额外配置。
  2. 转换逻辑入口:各类格式的转换作业都集中在 Application/FileConverter/ConversionJobs/ 目录,例如 ConversionJob_FFMPEG.cs 负责音视频转换,ConversionJob_ImageMagick.cs 负责图像处理,改功能前建议从这里读起。
  3. 界面与逻辑分离:视图在 Views/ 目录(如 MainWindow.xaml),数据绑定在 ViewModels/ 目录,遵循 MVVM 模式,便于单独修改界面。

4️⃣ Wix 安装器打包:构建 MSI 安装包

安装器工程的核心文件:

  • Installer/Installer.wixproj:引用 WixToolset.Sdk 5.0.2,声明了 Heat 采集任务,并把主程序和扩展两个项目的产物都收进INSTALLFOLDER
  • Installer/Product.wxs:定义产品属性(版本 2.2.0)、安装时注册/卸载右键扩展的自定义操作、以及 .NET Framework 4.8 的检测条件。

打包步骤:

  1. 在解决方案配置中选择Release|x64并"生成解决方案",bin\x64\Release\下会生成FileConverter-setup.msi
  2. ⚠️ Release 配置会导入 Installer.sign 进行安装器签名,没有证书时可临时注释该行,或改用Debug|x64生成免签名版本;
  3. 本地验证安装效果,可以直接运行仓库自带的 Installer/DebugInstaller.bat:
DebugInstaller.bat --debug --install

它会自动执行 msiexec 安装/卸载(支持--release--uninstall--quiet参数),并在 VS Code 中打开安装日志方便排查问题。

5️⃣ 新手贡献入口:从哪下第一手

  • 本地化翻译(最容易上手):多语言文件位于 Application/FileConverter/Properties/,例如 Resources.zh-CN.resx,补充或修正词条即可;
  • 转换预设:示例预设见 PresetSamples/,可参考 XML 结构新增预设;
  • 跟随版本演进:查看 CHANGELOG.md 了解每个版本的功能与修复,也方便为自己的改动撰写变更说明;
  • 诊断工具:应用内置诊断窗口(DiagnosticsWindow.xaml),提交 issue 前可先导出诊断数据。

完成构建、安装、修改、重新打包这一整套流程后,你就已经掌握了 File Converter 从源码到安装包的全部链路,可以开始向项目提交自己的第一个 PR 了 🚀

【免费下载链接】FileConverterFile Converter is a very simple tool which allows you to convert and compress files using the context menu in windows explorer.项目地址: https://gitcode.com/gh_mirrors/fi/FileConverter

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/19 1:40:20

Cursor 自定义 API Key,Base URL 走 TaoToken 兼容通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/19 1:39:15

Qt 5.14.2静态交叉编译aarch64嵌入式Linux完整指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/19 1:34:43

ERP沙盘模拟实训报告怎么写?从数据分析到经营复盘全攻略

简介:一份ERP沙盘模拟实训报告,源自某高校商学院市场营销专业团队的真实企业运营对抗实战,完整记录了《企业运营沙盘模拟》课程的实验目的、经营过程、结果分析与个人角色总结,可帮助经管类专业学生、ERP沙盘参赛团队及实训报告写…

作者头像 李华
网站建设 2026/9/19 1:32:39

用Excel搭建数据字典:字段设计、公式配置与维护实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华
网站建设 2026/9/19 1:32:12

电荷灵敏前置放大器噪声优化实战指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华