Dê uma chance a este arquivo REG.
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.ico]
@="xnviewico"
[HKEY_CLASSES_ROOT\xnviewico\shell\open\command]
@="d:\portable\xnview.exe \"%1\""
[-HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ico\UserChoice]
Atualize o caminho do xnview.exe de acordo.
Edit: Se o caminho contiver espaços, como "C: \ Arquivos de Programas \ XnView \ XnView.exe", coloque o (padrão) entre aspas duplas ... como neste arquivo REG:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.ico]
@="xnviewico"
[HKEY_CLASSES_ROOT\xnviewico\shell\open\command]
@="\"C:\Program Files\xnview\xnview.exe\" \"%1\""