2014-09-26 87 views
0

我有一个C#(.Net 4.0)WPF桌面应用程序,该应用程序构建并分发为单个文件的可执行文件。我们正在使用Visual Studio 2013.构建同一应用程序的两个版本

我们现在有一种情况,我们需要创建此应用程序的单独版本,该版本几乎完全相同,但具有不同的“品牌” - 主要是用于徽标和更改的单个图形到几位文本。

我不想维护两个不同的项目:是否有任何方法可以在构建时更改徽标和文本字段以读取某种变量或参数,以便最终实现两个不同的单个可执行文件创建:功能相同,但具有不同的标志和文本?

+0

有很多方法可以做到这一点,有条件的编译,创建一个新的配置,或者有多个.exe项目,并使用一个共享项目作为通用元素 - 名称三。 – AnthonyLambert 2014-09-26 14:36:54

+0

如果是我,我会有一个_Theme_类来包含标识图像(URI或其他)和文本。该类可以序列化为XML,然后在运行时读取。对于应用程序的每种变体,它都只是另一个XML文件。 – bdimag 2014-09-26 16:54:14

+0

不幸的是,我需要将应用程序保存为单个可执行文件,没有“支持”文件或任何其他依赖项。这是一个很长的故事......:/ – KenD 2014-09-26 18:00:53

回答

1

如果您使用的是Visual Studio 2013,我会看看新的Shared Projects功能。

基本上你会有两个.exe项目,只是不同的部分,然后他们都会引用共享项目中定义的共享部分。

上面的链接应该给你几个例子,它们将它用于Windows 8应用程序,但它适用于包括WPF在内的任何类型。

1

这取决于自定义的级别。如果你刚换出标志,颜色和字体可能 - 把它们作为资源在一个资源字典,然后使用DynamicResource结合引用它们...

<Label Content="{DynamicResource CompanyName}"\> 

然后,您可以做一些事情......

第一个选项是为每个品牌创建重复的资源字典,并在启动时加载相应的资源字典 - 可能基于app.config中的键值。 [在这里输入链接描述] [这里是Stackoverflow的建议]。

第二个选项是一个辅助类,用于在后面的代码中设置资源的值。

只是我希望可以帮助一些建议。

相关问题