如何使用条件编译使Visual Studio编译的应用程序显示不

2024-02-28  本文已影响0人  达哥傻乐

有时候我们编写的应用程序需要提供给不同的用户使用,希望它显示不同的图标,而又不想每次手工去切换图标,这时候我们可以使用条件编译来进行图标的自动切换。

实现的方式很简单,就是在项目文件里设定条件编译的内容即可。

  1. 在项目中添加两个图标,这里以我现有的项目为例,在Icons文件夹下有App.ico和Contacts.ico两个图标如图:


    图1. 添加两个不同的图标
  2. 假定我希望应用带了条件编译的符号USERA就将App.ico作为编译的Exe文件的图标,而不带USERA的符号就使用Contacts.ico作为Exe文件的图标,修改项目文件如下,这里以C#项目为例:
    2.1 用记事本或者其它文本编辑器打开项目文件即扩展名为.csproj的那个(注意VB.NET项目的文件扩展名为.vbproj
    2.2 搜索关键字<ApplicationIcon>的段落,准备修改。默认的设置可能如下图所示两种情况:
  <PropertyGroup>
    <ApplicationIcon>
    </ApplicationIcon>
  </PropertyGroup>
图2. 使用默认图标的情况
  <PropertyGroup>
    <ApplicationIcon>Icons\usb.ico</ApplicationIcon>
  </PropertyGroup>
图3. 指定了图标的情况

2.3 改成下面这样的:

  <PropertyGroup Condition="'$(DefineConstants.Contains(USERA))' == 'true'">
    <ApplicationIcon>Icons\App.ico</ApplicationIcon>
  </PropertyGroup>
  <PropertyGroup Condition="'$(DefineConstants.Contains(USERA))' != 'true'">
    <ApplicationIcon>Icons\Contacts.ico</ApplicationIcon>
  </PropertyGroup>

完成后带条件USERA或者不带的编译出来是不同的图标如下:

图4. 不同条件编译参数编译出不同的图标的程序

注意:如果图标没有变,上面的操作没有问题,试着将文件复制到别处或者改名看看,可能是Windows的图标缓存导致的。

上一篇下一篇

猜你喜欢

热点阅读