在Windows 7下,我似乎无法让图标显示出来,我真的很怀念Windows XP的这一点。

如何解决?


当前回答

Windows只能显示有限数量的覆盖图标(总共15个,在Windows之后有11个)。像Office Groove, Dropbox, Mozy, Carbonite等程序将劫持一堆11种可能的覆盖图标(如果微软增加这些图标的数量,因为使用它们的应用程序的数量似乎越来越多)…

你可以看到设置了哪些覆盖,并在注册表中更改它们(自担风险):

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\ShellIconOverlayIdentifiers

If you are using TortoiseCVS (and have nothing else using overlay icons), you will get a couple of TortoiseSVN Icons, and all of your TortoiseCVS icons. This is because the overlay icons are used in alphabetical order. Again, at your own risk (editing the registry may blow up your computer, yada, yada, yada -- and if you are reading Stack Overflow and using Windows and haven't edited the registry, you are a rare beast indeed), feel free to rename them (I suggest putting numbers in front of the ones you want to use and "z_"'s prefixed to the ones you don't need). The TortoiseSVN Shell extensions are nicely named so you know what they do, the TortoiseCVS extensions are not. After looking through the source code, I found the pertinent information:

TortoiseCVS0 -在CVS TortoiseCVS1 -不在CVS中 TortoiseCVS3 -冲突 TortoiseCVS4 -在CVS只读 乌龟ecvs5 -忽略 乌龟ecvs6 -新增 TortoiseCVS7 -删除 龟龟ecvs8 -锁定

其他回答

我在这里(和其他一些地方)尝试了所有的东西,对我有用的(在做了所有这些之后,我认为注册表更改是强制性的)是将图标覆盖\状态缓存的设置从默认更改为Shell,我还检查了“仅在资源管理器中显示覆盖和上下文菜单”。不知道是谁干的,但现在有用了。

我的主要目的是为TortoiseCVS制作图标。很多建议对我不起作用:卸载,重新安装;通过重命名重新注册;重新启动多次。但是真正起作用的是安装TortoiseSVN。这使得TortoiseCVS的图标起作用。我查了注册表。SVN安装将数字放在图标名称前面:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIconOverlayIdentifiers]
1TortoiseNormal
2TortoiseModified
3TortoiseConflict
4TortoiseLocked
5TortoiseReadOnly
6TortoiseDeleted
7TortoiseAdded
8TortoiseIgnored
9TortoiseUnversioned
Groove Explorer Icon Overlay 1 (GFS Unread Stub)
Groove Explorer Icon Overlay 2 (GFS Stub)
Groove Explorer Icon Overlay 2.5 (GFS Unread Folder)
Groove Explorer Icon Overlay 3 (GFS Folder)
Groove Explorer Icon Overlay 4 (GFS Unread Mark)
SharingPrivate
TortoiseAdded
TortoiseConflict
TortoiseDeleted
TortoiseIgnored
TortoiseLocked
TortoiseModified
TortoiseNormal
TortoiseReadOnly
TortoiseUnversioned
zEnhancedStorageShell
zOffline Files
zSkyDrivePro1 (ErrorConflict)
zSkyDrivePro2 (SyncInProgress)
zSkyDrivePro3 (InSync)

我发现,如果你先安装32位版本,它会把64位版本弄得一团糟。在重新安装windows 7时,我刚刚安装了64位版本,现在看起来工作正常。

为了完成Johannes的回答,你可以检查这个线程,其中提到了另一个原因(第一个原因是安装32位客户端而不是64位客户端)(强调我的):

只有最新版本的TSVN和TCVS能够共享覆盖图标,并且由于资源管理器有14个覆盖图像和无关的覆盖图标的限制 只是不出现你可能有太多… 如果它的覆盖图标显示,你必须实际使用 32位的Windows资源管理器,这当然意味着你也必须这样做 安装32位版本的TSVN。

在安装TortoiseVCS时可能会出现这个问题,因为:

Looking at what got installed in the filesystem and the registry, it looks like they tried to do what I do with my Shell extensions - install both 64 and 32 -bit versions, so that nobody says "I don't see my overlays/menus"! ;) Unfortunately, it looks like the registry entries for 32-bit got hosed, so the 32-bit extension DLL, even though present, does not have the correct registry entries. If in doubt I suggest to deinstall TCVS and TSVN. Then install TSVN. Maybe after installation reboot twice, not only once. And if they still don't show up go to software control panel and choose to repair the installation. That did the trick for me with when upgrading from the previous to the current version. You should probably install the TortoiseXYZ variant you plan to use mainly first, to improve its chances to fall into one of those limited number of overlay icons slots before the TortoiseXYZ variant you use less. Always keep these limited number of overlay icon slots in mind when trying to analyze malfunctions.

如果你想在Windows 7 64位的32位应用程序中使用Tortoise,你需要同时安装64位和32位版本的Tortoise。据乌龟的制造商说,这工作得很好。(源)