基于定义C#更改exe图标

2023-12-02

我正在为两个不同的人创建一个项目,我想通过定义更改图标。例如:

#if customer1
//add code to select c:\path to resources\myimage1.ico for exe icon
#else
//add code to select c:\path to resources\myimage2.ico for exe icon
#endif

我知道您可以在这里手动选择您想要的图标:

https://msdn.microsoft.com/en-us/library/339stzf7.aspx

但定义方式对于我们使用 git 来说是有意义的,因此我们不必不断重新上传别人的图像。我们可以简单地放置定义并让它使用该图像。谢谢。


您可以修改 csproj 文件,以便为两个客户创建不同的构建配置。例如,您可以执行以下操作:

  1. 通过右键单击 Visual Studio 中解决方案资源管理器中的项目并单击“卸载项目”来卸载项目。

  2. 右键单击已卸载的项目,然后单击“编辑”

  3. 找到“ApplicationIcon”标签并将其替换为两个条件 PropertyGroup,如下所示:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug_Customer1|AnyCPU' ">
  <ApplicationIcon>icon.ico</ApplicationIcon>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug_Customer2|AnyCPU' ">
  <ApplicationIcon>netfol.ico</ApplicationIcon>
</PropertyGroup>

这将为 Customer1 和 Customer2 创建调试构建配置。

  1. 在项目文件中的图标 ItemGroup 上执行相同的操作,如下所示:

<ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug_Customer1|AnyCPU' ">
  <Content Include="icon.ico" />
</ItemGroup>
<ItemGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug_Customer2|AnyCPU' ">
  <Content Include="netfol.ico" />
</ItemGroup>
  1. 找到配置本身的 PropertyGroup。它将有这一行:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
  1. 在此组下方,为两个新的调试客户配置添加调试配置组,如下所示:

<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug_Customer1|AnyCPU' ">
  <PlatformTarget>AnyCPU</PlatformTarget>
  <DebugSymbols>true</DebugSymbols>
  <DebugType>full</DebugType>
  <Optimize>false</Optimize>
  <OutputPath>bin\Debug_Customer1\</OutputPath>
  <DefineConstants>DEBUG;TRACE</DefineConstants>
  <ErrorReport>prompt</ErrorReport>
  <WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug_Customer2|AnyCPU' ">
  <PlatformTarget>AnyCPU</PlatformTarget>
  <DebugSymbols>true</DebugSymbols>
  <DebugType>full</DebugType>
  <Optimize>false</Optimize>
  <OutputPath>bin\Debug_Customer2\</OutputPath>
  <DefineConstants>DEBUG;TRACE</DefineConstants>
  <ErrorReport>prompt</ErrorReport>
  <WarningLevel>4</WarningLevel>
</PropertyGroup>
  1. 单击“保存”。

  2. 在解决方案资源管理器中右键单击项目文件,然后单击“重新加载项目”。如果 Visual Studio 询问您是否要关闭项目文件,请选择“是”。

  3. Now when you want to build for different customers, go to Build\Configuration Manager and select the customer-specific configuration. Configuration Manager with Customer-Specific Configuration

  4. 重复这些步骤为每个客户添加特定于版本的配置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

基于定义C#更改exe图标 的相关文章

  • 将复选框添加到 UniformGrid

    我正在尝试将复选框动态添加到 wpf 中的统一网格中 但看起来网格没有为它们分配足够的空间 所以它们都有点互相重叠 这就是我将它们添加到后面的代码中的方法 foreach string folder in subfolders PathCh
  • 如何检查图像对象与资源中的图像对象是否相同?

    所以我试图创建一个简单的程序 只需在单击图片框中更改图片即可 我目前只使用两张图片 所以我的图片框单击事件函数的代码 看起来像这样 private void pictureBox1 Click object sender EventArgs
  • 如何使 Windows 窗体的关闭按钮不关闭窗体但使其不可见?

    该表单有一个 NotifyIcon 对象 当用户单击 关闭 按钮时 我希望表单不关闭而是变得不可见 然后 如果用户想再次查看该表单 可以双击系统托盘中的图标 如果用户想关闭表单 可以右键单击该图标并选择 关闭 有人可以告诉我如何使关闭按钮不
  • UML类图:抽象方法和属性是这样写的吗?

    当我第一次为一个小型 C 项目创建 uml 类图时 我在属性方面遇到了一些麻烦 最后我只是将属性添加为变量 lt
  • 如何避免情绪低落?

    我有一个实现状态模式每个状态处理从事件队列获取的事件 根据State因此类有一个纯虚方法void handleEvent const Event 事件继承基础Event类 但每个事件都包含其可以是不同类型的数据 例如 int string
  • 如何在列表框项目之间画一条线

    我希望能够用水平线分隔列表框中的每个项目 这只是我用于绘制项目的一些代码 private void symptomsList DrawItem object sender System Windows Forms DrawItemEvent
  • 指针问题(仅在发布版本中)

    不确定如何描述这一点 但我在这里 由于某种原因 当尝试创建我的游戏的发布版本进行测试时 它的敌人创建方面不起作用 Enemies e level1 3 e level1 0 Enemies sdlLib 500 2 3 128 250 32
  • 在 Visual Studio 2008 上设置预调试事件

    我想在 Visual Studio 中开始调试程序之前运行一个任务 我每次调试程序时都需要运行此任务 因此构建后事件还不够好 我查看了设置的 调试 选项卡 但没有这样的选项 有什么办法可以做到这一点吗 你唯一可以尝试的 IMO 就是尝试Co
  • Json.NET - 反序列化接口属性引发错误“类型是接口或抽象类,无法实例化”

    我有一个类 其属性是接口 public class Foo public int Number get set public ISomething Thing get set 尝试反序列化Foo使用 Json NET 的类给我一条错误消息
  • Qt moc 在头文件中实现?

    是否可以告诉 Qt MOC 我想声明该类并在单个文件中实现它 而不是将它们拆分为 h 和 cpp 文件 如果要在 cpp 文件中声明并实现 QObject 子类 则必须手动包含 moc 文件 例如 文件main cpp struct Sub
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • Github Action 在运行可执行文件时卡住

    我正在尝试设置运行google tests on a C repository using Github Actions正在运行的Windows Latest 构建过程完成 但是当运行测试时 它被卡住并且不执行从生成的可执行文件Visual
  • 从库中捕获主线程 SynchronizationContext 或 Dispatcher

    我有一个 C 库 希望能够将工作发送 发布到 主 ui 线程 如果存在 该库可供以下人员使用 一个winforms应用程序 本机应用程序 带 UI 控制台应用程序 没有 UI 在库中 我想在初始化期间捕获一些东西 Synchronizati
  • 如何使我的表单标题栏遵循 Windows 深色主题?

    我已经下载了Windows 10更新包括黑暗主题 文件资源管理器等都是深色主题 但是当我创建自己的 C 表单应用程序时 标题栏是亮白色的 如何使我自己的桌面应用程序遵循我在 Windows 中设置的深色主题 你需要调用DwmSetWindo
  • 插入记录后如何从SQL Server获取Identity值

    我在数据库中添加一条记录identity价值 我想在插入后获取身份值 我不想通过存储过程来做到这一点 这是我的代码 SQLString INSERT INTO myTable SQLString Cal1 Cal2 Cal3 Cal4 SQ
  • 为什么 C# Math.Ceiling 向下舍入?

    我今天过得很艰难 但有些事情不太对劲 在我的 C 代码中 我有这样的内容 Math Ceiling decimal this TotalRecordCount this PageSize Where int TotalRecordCount
  • Validation.ErrorTemplate 的 Wpf 动态资源查找

    在我的 App xaml 中 我定义了一个资源Validation ErrorTemplate 这取决于动态BorderBrush资源 我打算定义独特的BorderBrush在我拥有的每个窗口以及窗口内的不同块内
  • x86 上未对齐的指针

    有人可以提供一个示例 将指针从一种类型转换为另一种类型由于未对齐而失败吗 在评论中这个答案 https stackoverflow com questions 544928 reading integer size bytes from a
  • 限制C#中的并行线程数

    我正在编写一个 C 程序来生成并通过 FTP 上传 50 万个文件 我想并行处理4个文件 因为机器有4个核心 文件生成需要更长的时间 是否可以将以下 Powershell 示例转换为 C 或者是否有更好的框架 例如 C 中的 Actor 框
  • 防止索引超出范围错误

    我想编写对某些条件的检查 而不必使用 try catch 并且我想避免出现 Index Out of Range 错误的可能性 if array Element 0 Object Length gt 0 array Element 1 Ob

随机推荐

  • 将 Visual Studio 项目保存在网络驱动器上

    我们刚刚从本地存储所有文件转向将它们存储在网络驱动器上 问题是我的 Visual Studio 项目现在也存储在其中 还没有版本控制系统 正在处理 我过去听说过这样做会出现问题 但从未听说过解决方法 现在有解决办法吗 Visual Stud
  • Swift:异步加载和显示照片

    我正在努力解决从 iPhone 显示照片库的问题collectionView 如果有人在画廊里有 50 张照片 一切都会正常 问题是 当某人有数千张照片时 图库加载时间为 10 秒 这对我的应用程序不利 当我从 Facebook 加载图像时
  • 更改枚举 Swift 的关联值

    如何更改枚举的特定关联值 enum Origin case search searchTerm String filtered Bool case category categoryName String subcategoryName S
  • 异步函数中的变量范围

    我已经构建了返回一些变量的函数 但我的函数异步使用另一个函数 function getVariable var myVariable asyncronousFunction function myVariable return myVari
  • 比较同一文档的两个字段[重复]

    这个问题在这里已经有答案了 我正在尝试查询一个巨大的 mongo 集合 其中包含大约 50 百万条记录 在 mongo 查询中 我只需要几个字段 文档中存在的对象 ID 和 MD5 为此 我做了 Query db getCollection
  • Android动画不重复

    我正在尝试制作会重复多次 或无限 的简单动画 看起来android repeatCount不起作用 这是我的动画资源 res anim first animation xml
  • 将字符串传递给python中的文件打开函数

    我有一个用户输入 我想将其作为打开函数的文件名参数传递 这是我尝试过的 filename input Enter the name of the file of grades file open filename r 当用户输入的是open
  • PHP 字符串替换

    我有字符串 var 我需要在其中替换一些文本 第一个 X 需要替换为 A 第二个 X 需要替换为B等等 下面是一个例子 我尝试过str replace但这行不通 Thanks 你可以使用preg replace s limit只替换一次的说
  • 如何在AWS S3中添加缓存控制?

    我已通过 s3cmd 命令将 20000 个文件移动到 AWS S3 现在我想为所有图像添加缓存控制 jpg 这些文件位于 s3 bucket name images 如何通过 s3cmd 为所有图像添加缓存控制或者是否有其他方法来添加标头
  • Facebook Like Box 无法在 Ember 应用程序上加载

    我试图让类似的框在我们的 ember 应用程序中工作 在一个名为的模板中about 问题是 如果我从另一条路线进入 ember 应用程序 而不是about路线 然后导航至about路线与link to助手 则不会呈现类似框 相反 如果我输入
  • Dagger 2.0 - AppEngine - gradle 配置

    我正在尝试在 AppEngine 项目中从 Dagger 1 2 2 迁移到 Dagger 2 0 1 NOT安卓一 使用 Dagger 1 2 2 很简单 compile com squareup dagger dagger compil
  • 在 iOS 中,如何使用 Xcode 从 Localized.strings 中删除语言

    这就是我的 xcode 项目的样子 我想删除英国和美国的 Localized strings 只保留英语的 Localized strings 我怎样才能做到这一点 按照下图中的说明进行操作
  • 道场声明正确的方式

    file dojo dir1 utils XmlJsonUtils js Author Rajat Khandelwal define dojo base declare declare function declare return de
  • OpenCart 管理菜单链接 url

    我对 OpenCart 很陌生 我正在尝试为其制作一个模块 我想要在管理菜单中链接到我正在创建的模块 因此我编辑了此文件 admin view template common header tpl 我添加的代码 li a class top
  • 时间:2019-03-17 标签:c#Array.FindAllIndexOfwhichFindAllIndexOf

    我知道c 有Array FindAll and Array IndexOf 有没有Array FindAllIndexOf返回int string myarr new string s f s int v myarr Select b i
  • 在 for 循环中处理“借用的值没有足够长的寿命”[重复]

    这个问题在这里已经有答案了 我正在抓取的网站要求我查询 HTML 页面的标题标签以及一些其他元素 看看我是否可以辨别文章的标题 我创建一个HashMap lt str u8 gt 并立即 insert title tag text 1 查询
  • 后台线程上的 NSTimer 回调

    我有一个NSTimer定义如下 timer NSTimer scheduledTimerWithTimeInterval 30 target self selector selector fooBar userInfo nil repeat
  • 选择以“abc”开头并以“xyz”结尾的元素

    我的页面中有一些 id 类似于 abc 1 2 3 xyz 的元素 如何在 Jquery 中选择以 abc 开头并以 xyz 结尾的元素 div id abc div id xyz 您可以使用 2 个属性选择器 div id abc id
  • 函数式接口的行为和方法参考

    当属于变量的方法的引用被销毁时会发生什么 public class Hey public double bar public Hey bar 2 0d public double square double num return Math
  • 基于定义C#更改exe图标

    我正在为两个不同的人创建一个项目 我想通过定义更改图标 例如 if customer1 add code to select c path to resources myimage1 ico for exe icon else add co