17

在此处输入图像描述

我正在尝试将添加或删除程序中的图标设置为与我的应用程序图标相同。我的图标存储在我的解决方案的应用程序文件夹中。我在SourceForge 上阅读过,您必须编辑 ARPPRODUCTICON 属性。在 Windows 窗体中如何/在哪里执行此操作?

4

6 回答 6

44

我找到了一个非常简单的解决方案。在部署项目的属性下,单击“AddRemoveProgram”并浏览您的文件。我建议将您的应用程序图标放在您的应用程序文件夹中。

在此处输入图像描述

于 2013-04-28T03:43:02.563 回答
9

您可以在下面手动更改这些详细信息

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

一些有效的可接受的键值:

  • InstallLocation (string) - 安装目录 ($INSTDIR)
  • DisplayIcon (string) - 将在您的应用程序名称旁边显示的图标的路径、文件名和索引
  • Publisher (string) - (Company) 发布者的名称
  • ModifyPath (string) - 应用程序修改程序的路径和文件名
  • InstallSource(字符串)- 安装应用程序的位置
  • ProductID(字符串)- 应用程序的产品 ID
  • 自述文件(字符串)- 自述文件信息的路径(文件或 URL)
  • RegOwner (string) - 应用程序的注册所有者
  • RegCompany (string) - 应用程序的注册公司
  • HelpLink(字符串)- 到支持网站的链接
  • HelpTelephone (string) - 支持电话号码
  • URLUpdateInfo (string) - 链接到应用程序更新的网站
  • URLInfoAbout (string) - 链接到应用程序主页
  • DisplayVersion (string) - 应用程序的显示版本
  • VersionMajor (DWORD) - 应用程序的主要版本号
  • VersionMinor (DWORD) - 应用程序的次要版本号
  • NoModify (DWORD) - 如果卸载程序没有选项来修改已安装的应用程序,则为 1
  • NoRepair (DWORD) - 如果卸载程序没有修复安装的选项,则为 1
  • SystemComponent (DWORD) - 设置 1 以防止应用程序显示在控制面板中添加/删除程序的程序列表中。
  • EstimatedSize (DWORD) - 已安装文件的大小(以 KB 为单位)
  • 注释(字符串)- 描述安装程序包的注释

如果 NoModify 和 NoRepair 都设置为 1,则按钮显示“删除”而不是“修改/删除”。

例如:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\WinRAR archiver]
"DisplayName"="WinRAR 4.20 (64-bit)"
"DisplayVersion"="4.20.0"
"VersionMajor"=dword:00000004
"VersionMinor"=dword:00000014
"UninstallString"="C:\\Program Files\\WinRAR\\uninstall.exe"
"DisplayIcon"="C:\\Program Files\\WinRAR\\WinRAR.exe"
"InstallLocation"="C:\\Program Files\\WinRAR\\"
"NoModify"=dword:00000001
"NoRepair"=dword:00000001
"Language"=dword:00000000
"Publisher"="win.rar GmbH"

您可以更改(或创建它,如果它不存在)DisplayIcon键的值。这将更改控制面板中添加或删除程序中的卸载程序图标。

于 2013-04-25T02:32:54.490 回答
3

Windows 安装程序支持您可以添加 Icon 的属性ARPPRODUCTICON。要设置此属性,我们需要使用Icon元素在安装程序中添加图标。

<Icon Id="icon.ico" SourceFile="MySourceFiles\icon.ico"/>
<Property Id="ARPPRODUCTICON" Value="icon.ico" />

这将在控制面板中添加图标。

于 2015-07-10T10:47:49.757 回答
3

最简单的方法 - 首次启动时运行此代码(vb .net):

 Dim myUninstallKey As RegistryKey = Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Uninstall")
 dim iconSourcePath As String = "c:\myprogram\myprogram.exe,0"
 Dim mySubKeyNames As String() = myUninstallKey.GetSubKeyNames()
 For i As Integer = 0 To mySubKeyNames.Length - 1
     Dim myKey As RegistryKey = myUninstallKey.OpenSubKey(mySubKeyNames(i), True)
     Dim myValue As Object = myKey.GetValue("DisplayName")
     If myValue IsNot Nothing AndAlso myValue.ToString() = "YourProgaram" Then
         myKey.SetValue("DisplayIcon", iconSourcePath)
         Exit For
     End If
 Next

或 C#

RegistryKey myUninstallKey = Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Uninstall");
string iconSourcePath = "c:\myprogram\myprogram.exe,0";
string[] mySubKeyNames = myUninstallKey.GetSubKeyNames();
for (int i = 0; i <= mySubKeyNames.Length - 1; i++) {
    RegistryKey myKey = myUninstallKey.OpenSubKey(mySubKeyNames(i), true);
    object myValue = myKey.GetValue("DisplayName");
    if (myValue != null && myValue.ToString() == "YourProgaram") {
        myKey.SetValue("DisplayIcon", iconSourcePath);
        break; // TODO: might not be correct. Was : Exit For
    }
}
于 2017-04-20T14:30:01.007 回答
2

是的,您可以通过以下代码执行此操作:

 string Install_Reg_Loc = @"Software\Microsoft\Windows\CurrentVersion\Uninstall";
 string displayIcon = @"C:\MorganTech\setup-icon.ico";
 RegistryKey hKey = (Registry.LocalMachine).OpenSubKey(Install_Reg_Loc, true);
 RegistryKey appKey = hKey.OpenSubKey(productName);
 appKey.SetValue("DisplayIcon", (object)displayicon, RegistryValueKind.String)
于 2013-09-06T04:17:45.263 回答
1

在 Visual Studio 2017 社区版中:

选择安装程序项目并按 F4 (这次鼠标单击没有帮助,但我发誓我之前通过另一种方式得到了它。)

于 2018-07-30T21:10:33.810 回答