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

如何解决?


当前回答

我建议向微软投诉图标覆盖限制低得离谱。如果我们有足够多的人抱怨,也许他们会解决这个问题的真正根源:

查看页面底部的评论: http://msdn.microsoft.com/en-us/library/cc144123 (VS.85) . aspx

给微软Windows 7团队关于这个问题的反馈: http://mymfe.microsoft.com/Windows%207/Feedback.aspx?formID=195

其他回答

也不需要重新启动你的电脑。而是重新启动explorer.exe:

按Ctrl + Shift + Esc。 单击进程选项卡。 右键单击explorer.exe。 选择“结束进程”。 单击“结束进程”按钮。 单击Applications选项卡。 右键单击。 单击“新建任务(运行)”。 “打开”设置为:资源管理器 单击OK。

Windows资源管理器已重新启动,TortoiseSVN图标重新出现。

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

我遇到了与OP相同的问题:Win 7 (x64), TortoiseSVN (x64)和DropBox (x86)。其他一些答案给了我所有的信息。我在这台机器上只安装过x64版本的TSVN。

以我为例,TSVN和DropBox是在我安装操作系统的同一天安装的,直到几天前,它们的覆盖工作都很好。我没有做任何改变这两个应用程序设置导致它们停止工作的事情。

下面是问题开始后我在图标覆盖注册表部分(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\explorer\ShellIconOverlayIdentifiers):

DropboxExt1 DropboxExt2 DropboxExt3 EnhancedStorageShell 离线文件 SharingPrivate TortoiseAdded TortoiseConflict TortoiseDeleted TortoiseIgnored TortoiseLocked TortoiseModified TortoiseNormal TortoiseReadOnly TortoiseUnversioned

我验证了只有对应于前11个条目的覆盖显示在资源管理器中。当我通过在其中一些条目的开头添加'z'来修改上述条目的顺序时,仍然只显示前11个覆盖(在更新的顺序下)。

有了上面的内容,我就有了解决问题所需的一切(重命名或删除条目,以便我想要工作的TSVN条目在列表上<= #11)。下面讨论为什么会突然发生这种情况。

I know that based on the overlays that worked prior to a couple of days ago, keys 1-3, 7-9, 12-13 were all <= 11 in the list (not sure if overlay #14 ever worked since I never had files w/ read-only status. #15 never worked on this machine so i know it was never in the top 11). I also assume the block of TSVN keys move up/down in unison, therefore they were bumped down either two or three places (* see below). This implies that 2-3 items were added between the DropBox & TSVN blocks. The three that are there now are added by Windows and I would assume they'd be there as soon as the OS installed.

15个覆盖的列表是否在运行时确定?似乎覆盖处理程序有时会告诉windows shell没有图标可以添加到列表中。可能是我几天前搞砸了文件共享和文件加密的一些设置,导致4-6个位置的一些项目被“激活”,并将SVN的项目推下。

最后,我删除了一些条目,并移动了一些,所以我的最终列表看起来像这样:

DropboxExt1 DropboxExt2 DropboxExt3 SharingPrivate(我想显示这个) TortoiseAdded TortoiseConflict TortoiseDeleted TortoiseModified TortoiseNormal TortoiseReadOnly TortoiseUnversioned zOffline文件(我不使用同步中心,或“脱机文件”,所以我不关心这个) zEnhancedStorageShell(不知道什么是增强存储,不认为我需要这个)

为了完成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限制可用的覆盖图标的数量,参考Kris Erickson的回答。 TortoiseSVN设置不当,参考Ralph Cowling的回答。 从早期版本(1.6.10之前)更新的已知错误,请参阅这里。 TortoiseSVN并不是为所有用户安装的,尝试像下面这样用cmd安装,如果下面三个解决方案都不工作,我相信这个方法会挽救你的生命。


rem Set your own path.
set TOOL_ROOT=d:\Tools\TortoiseSVN-1.6.13.20954-win32-svn-1.6.16\tortoisesvn_1.6.16.21511
set PACKAGENAME=TortoiseSVN-1.6.16.21511-x64-svn-1.6.17.msi
set TOOL_INSTALLROOT="c:\Program Files (x86)\TortoiseSVN"

msiexec /i "%TOOL_ROOT%\%PACKAGENAME%" INSTALLDIR=%TOOL_INSTALLROOT% ALLUSERS=1 ARPSYSTEMCOMPONENT=1 RebootYesNo=No REBOOT=ReallySupress /qb-

set ret=%ERRORLEVEL%

rem The installer seems to return same values as MSI
rem These codes mean that the product is properly installed, even though the code is not zero.
rem 1641 ERROR_SUCCESS_REBOOT_INITIATED
rem 3010 ERROR_SUCCESS_REBOOT_REQUIRED
if %ret% EQU 1641 set ret=0
if %ret% EQU 3010 set ret=0
if %ret% GTR 0 exit %ret%