在VS2010安装项目中为快捷方式设置正确的图标

16

我有一个带有安装程序的小程序。 如果我创建一个指向主输出的快捷方式,那么它将获得标准的Win7图标,而不是在我的exe应用程序图标中指定的图标?

最好的方法是确保我的桌面快捷方式图标与我的exe应用程序图标相同吗? 例如,如果我更改exe的图标,则希望Setup图标也更改。


我可以将ico文件添加到我的应用程序文件夹中,然后通过快捷方式引用它,但这意味着需要始终记住保持应用程序和安装项目同步。 - BlueChippy
选择在设置项目中创建的快捷方式,然后设置其图标属性。默认情况下是(无),因此您将得到普通的简单样式。 - Hans Passant
但这意味着将图标包含在应用程序文件夹中...而使用 ClickOnce 部署则不需要这样做,因为它会从 exe 中获取。 - BlueChippy
4个回答

19

如果你为快捷方式设置图标,你可以将主输出设置为源。在安装程序的文件系统编辑器中,单击快捷方式属性窗格中的“(Icon)”组合框,然后选择“(Browse...)”选项,点击“浏览...”按钮,你会看到这个:

添加输出

接着添加输出并选择exe的主要输出。


谢谢,但是试了一下...它没有使用Exe的图标创建快捷方式,而是使用了标准的Windows / VS图标。如果我使用ClickOnce安装,它会使用Exe的图标。唯一的方法似乎是将图标添加到SetupProject并引用它...当然,这意味着如果您更新exe,则需要更新设置...我希望避免这种情况。 - BlueChippy
1
嗯,我经常这样做。然后它会在窗口上方显示exe的图标,并带有一些数字作为名称。你看到发生了什么吗? - Gert Arnold
6
找到了!文件类型仍然设置为 *.ico - 改为 *.exe,图标就出现了!耶! - BlueChippy

5
您可以从目标.exe文件中添加图标到快捷方式... 在目标计算机的文件系统中,浏览到您想要添加图标的文件夹中的快捷方式(如用户桌面等)。右键单击快捷方式并选择属性窗口。你会看到一个图标行...点击它,选择浏览,然后浏览到应用程序文件夹/yourExe.exe(从图标改为exe文件),然后点击确定。它会显示从yourExe.exe选定的图标,请点击确定。您基本上需要为不同文件夹中的所有快捷方式(用户桌面,用户启动等)做相同的事情。现在所有的图标都很好!

2

补充Gert的回答:确保您先构建项目。否则,设置应用程序将无法看到图标。


1

使用IWshShortcut的非常简单的方法(在.NET 2中也适用):

WshRuntimeLibrary.IWshShortcut MyShortcut = (IWshRuntimeLibrary.IWshShortcut)WshShell.CreateShortcut(fullPathLnk);    
string iconLoc = MyShortcut.IconLocation; // <- example: "c:\icon.ico,0"

我用它来检查iconLoc是否存在,如果不存在则进行修复,您可以使用它来查找和读取图标文件等等。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接