At some point you may want to define an "icon" for your SharePoint list templates. Doing this is kindof quirky and the SDK doesn't seem to mention the quirk (At least I couldn't find it anywhere).

Basically icons will appear in a few places, for example the Create page when you hover over the list and the the site content summary page.

image

image

You can define an image to be displayed in the VSeWSS Solution Properties as shown below:

image

Here I am referencing a 16x16 png called INotice.png. Now for the quirky part... The image path set above will be referenced as-is in the site content summary page (The first image show above) where the small image (16x16) is used. But how do you define the larger image (32x32) used in the Create List form (Show above)? Basically the Create List page takes the url entered into the list Element Manifest Image property above (Which corresponds to the Image attribute of the ListTemplate element in the List template manifest file) and replaces the first letter of the filename with an "L". So it would change the image url above to "/PhvenEleaseResources/LNotice.png". In this case you would see a broken image link when you hovered over your list template.

So you need to deploy 2 images, first a small image (16x16) with some arbitrary prefix character like "I" ("I" is the prefix used by OOB small SharePoint images, but it can be any character), for example "IMyListImage.gif". Set the Image URL in the VSeWSS list element manifest (As shown above), for example "/MyImages/IMyListImage.gif". Additionally, deploy a large image (32x32) that has the same name as your small image but starts with an "L" instead, for example "LMyListImage.gif". SharePoint will then correctly display the large and small images appropriately.

Now, you may be asking, how do I deploy those list images using VSeWSS and Solution Deployment? The best way I could find (Using only VSeWSS) is to create a module. 

image

Once created, remove the sample file and reference from the new module. Copy your list images into the the new module folder and reference them in the module definition as demonstrated below.

xml version="1.0" encoding="utf-8"?>

<Elements xmlns="http://schemas.microsoft.com/sharepoint/">

    <Module Name="MyImages" Url="MyImages" RootWebOnly="TRUE">

        <File Url="LMyListImage.gif" Type="Ghostable"/>

        <File Url="IMyListImage.gif" Type="Ghostable"/>

    Module>

Elements>

Once deployed the two images can be referenced as "/MyImages/IMyListImage.gif" and "/MyImages/LMyListImage.gif" where the Module Url attribute defines the path off the root of the site.