在Visual Studio构建中管理资源(图像)的过程

时间:2010-01-02 12:59:59

标签: c# visual-studio image resources build-process

我有一个由两个客户使用的软件产品。有一个代码库,唯一的区别是每个客户在产品上都有自己的徽标。我的问题是,管理代码库的最佳方法是什么,以便我可以轻松地为每个客户构建项目,从不使用错误的徽标?

我目前在目录中有两个图像,修改代码以指向适当客户的正确图像并在VS中构建。显然效率不高。

我想要做的是在构建过程中具有某种价值,以便它知道要使用哪个图像。这样我每次需要进行构建时都不会编辑代码。我相信这是可能的,但我不确定如何去做这件事。

任何建议或指示都将非常受欢迎。

谢谢, 将

3 个答案:

答案 0 :(得分:1)

一个显而易见的可能性是具有两种不同的构建配置,每种配置都指定不同的预处理器符号。然后你可以这样做:

#if CUSTOMER1
   const string LogoResource = "customer1.jpg";
#elif CUSTOMER2
   const string LogoResource = "customer2.jpg";
#else
   #error Must specify CUSTOMER1 or CUSTOMER2
#endif

有点难看,但它会起作用......

答案 1 :(得分:0)

您可以将图像放在一个单独的(仅限资源)dll中,例如customer1.dll和customer2.dll(或者您可以使用相同的名称使加载更容易)并且只将相应的dll发送给每个客户。在应用程序启动时,从dll加载图像并使用它。这是一个相当可扩展的系统。

答案 2 :(得分:0)

也许从不同的角度看问题域。

通常,您不希望为每个客户端重建项目 - 唯一的方法是在运行时动态加载图像。

通常我会在设置文件中指定图像路径用户,并在运行时加载图像。这样可以避免任何复杂的构建设置等,并且如果您的客户群继续增长,还可以为您提供可扩展性的额外好处。