【问题标题】:WPF - application branding solutionWPF - 应用程序品牌解决方案
【发布时间】:2014-02-02 12:22:07
【问题描述】:

我是一个 4 年复杂的 WPF 项目的新手,对 WPF 技术有基本的了解,并且来自基于网络的产品。

该产品总是为两个客户发布,具有不同的品牌,以下是一些差异:

1. Images in the resources folder.
2. Change (name, target, icon) in the installer project.
3. Installer general properties > change {AddRemoveProgramsIcon , Product Name , Title}/
4. Installer UpgradeCode.
5. Update msi installer name.
6. Remove dlls from references.
7. Config. files: CommonAssemblyInfo.cs> change AssemblyTitle, AssemblyProduct
8. Search and replace in many String resources files.

那么,是否有一种可行的方法可以自动完成所有或大部分手动步骤?我发现了一些关于 Pre 和 Post 构建操作的文章,但之前从未尝试过,如果它是合适的解决方案,将涵盖多少点?

谢谢。

【问题讨论】:

  • 您建议构建前和构建后操作的事实让我认为也许您应该离开 WPF 工作......也许完全放弃编程。真的,你只需要逻辑来实现这些目标......你甚至可以按照状态模式为不同的用户显示不同的视图。另外,这个问题与WPF无关,所以你可以考虑去掉WPF标签。
  • @Sheridan 我仍然找不到您的帮助 .. 感谢您的意见 :)
  • 我不太确定您希望从发布这个问题中得到什么“帮助”。没有人会为您提供完整的工作解决方案,而且 .NET 中也没有任何内置解决方案。正如我所说,你只需要逻辑来实现这些目标......一一......祝你好运。
  • 有趣的是我给了他帮助,他甚至都懒得投票或接受我的回答。我在“产品线开发”环境中度过了 4 年的职业生涯,为一家 1 亿美元/年的公司处理这些不同的问题。

标签: c# wpf build windows-installer branding


【解决方案1】:

这基本上是离散数学/集合论的练习。在 Windows Installer 世界中,您可以创建合并模块来封装组件集合。在最简单的示例中,您需要三个合并模块:

1) 客户端 A 文件合并模块

2) 客户端 B 文件合并模块

3) 常用文件合并模块

如果要安装多个可选功能,则可以进一步拆分常用文件。如果客户端 A 文件和客户端 B 文件包含这些可选功能的唯一配置数据,您还可以拆分它们。

最好还使用自己的品牌和图标创建唯一的 EXE 名称(ClientA.exe 和 ClientB.exe),这样当您在各自的合并模块中使用它们时,您可以为它们提供唯一的快捷方式信息。使这些 EXE 非常薄,在一个通用 DLL 中具有核心功能(DRY:不要重复自己)

最后,您创建了 2 个非常薄的 MSI 项目。仅包含 ProductName、UpgradeCode、Feature Treee 和 Dialog UI。没有文件,因为所有文件都没有通过合并模块引用。

如果您使用诸如 Windows Installer XML 或 InstallShield 之类的工具来生成您的 UI,则有一种方法可以从一个项目中构建两个 MSI,这样就不会重复任何事情。不过,这涉及到非常高级的创作,需要在深入研究高级抽象之前对“基本”MSI 创作有深刻的理解。 WiX 还支持“片段”,InstallShield 支持“开发人员安装清单”,但严格来说,所有工具都支持仅 Windows 安装程序合并模块。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-01-28
    • 2014-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-24
    相关资源
    最近更新 更多