5

我必须为两家不同的公司制作相同的程序(不同的徽标,不同的名称)。我希望在发布时自动完成此操作。

我正在考虑使用资源文件或附属程序集,但我不确定如何继续。

你认为哪种方式最好?

谢谢。

编辑:

  • 区别只有一张图像和一个字符串。
  • 我想一键生成所有内容。
  • 未来我们可能会获得更多的客户。
  • 我还必须补充一点,我使用 SmartAssembly 将所有依赖项合并到一个 exe 文件中。
4

3 回答 3

4

您可以创建一个包含 99% 代码的类库,然后有两个项目,每个项目都引用公共库,其中 1% 因每个公司而异。然后整个解决方案的构建将为每个公司生成一个可执行文件。如果每家公司想要的差异刚好足以让您需要 [稍微] 不同的代码,请使用此选项。

或者,您可以根据数据而不是代码制作不同的部分。在这种情况下,这可能意味着从文件中获取徽标,而不是将其嵌入到可执行文件中,并拥有一个带有公司名称的配置 xml 文件。这将允许您对两家公司都只有一个可执行文件。

于 2012-05-25T19:51:39.837 回答
2

单独程序集中的资源字符串将是最简单的分发。

但老实说,我希望它是一个自定义功能。您最不想要的就是维护每个人的徽标更改,原因是:法律原因、文案案例、异想天开的艺术许可等。

这是...的缩写。让他们提供格式化的图像,并让他们在安装期间分配公司名称并将其存储在注册表或某种类型的元文件(XML、清单等)中

于 2012-05-25T19:51:37.517 回答
1

我能想到的最好的批处理脚本。

让您的项目引用文件(图像(徽标)、文本(公司名称)等)。即 C:\MyProject\Resources。这样当项目构建时,它会将它们编译到应用程序/安装程序等中。

这样,您可以编写一个脚本(.bat 文件)来复制每个公司所需的资源。

第 1 步 - 删除 Resources 文件夹中的所有文件

第 2 步 - 使用 MSBuild.exe 构建您的项目

第 3 步 - 将所需文件从 bin/release 文件夹复制到一个目录(即 C:\Release\CompanyA)

第 4 步 - 更改脚本中的变量以加载下一家公司的详细信息。并从步骤 1 开始重复,因此它会复制所需的资源文件并重新构建。

于 2012-05-25T20:06:20.390 回答