Search code examples
c#.neticonsfile-type

Registering file type and custom document icon in .NET


I have application that produces files. I would like to connect those files with application so that double-click on file launches my application.

Everything works properly except for annoyance that icon looks same like icon of my application. I would like to have one icon for application and one icon for it's documents.

DefaultIcon value in registry requires "app.exe,1" syntax where 1 is icon index. It seems that .NET resources are not Win32 resources.

I tried following but without success:

  1. Selecting "Embedded Resource" as file's build action.
  2. Adding icon to resource file.

Only thing that worked is having icon file separated from executable and pointing to it. However, that seems to me like surrender.

Any ideas how to solve this?


Solution

  • Have you tried setting 2 as the icon index?

    EDIT: I found a way but you have to do it again for every new build.

    1. Open the .exe file in Visual Studio (File -> Open File)
    2. Right click the icon folder and select Add resource
    3. Click the button Import
    4. Select your .ico file
    5. You might have to mess with the icon numbers, I think the lowest number (example 101) will be the application's icon
    6. Remember the new icon number and set it as the index

    EDIT 2: Try this article: http://www.codeproject.com/KB/dotnet/embedmultipleiconsdotnet.aspx