Take the 2-minute tour ×
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It's 100% free, no registration required.

Having an issue updating files with a feature. This is for custom branding. here is a sample of the elements.xml file. If I add a new file, it will provision fine, but any changes to existing files won't. Tried reactivating feature, retracting/redeploying, IISResets, IgnoreIfAlreadyExists attribute, and Rebooting of server. Is there anything that might cause these to not provision correctly?

  <File Url="images/website_icon.png" Type="GhostableInLibrary" />
    <File Url="images/apply_now.png" Type="GhostableInLibrary" />
    <File Url="images/btn_applynow.png" Type="GhostableInLibrary" />
share|improve this question
    
I eventually fixed the problem by deleting the root folder of all the files that were being provisioned and it worked again. Something was hung up with updating existing files and I could never figure out what. –  Shane Apr 29 '11 at 20:37
    
Just curious, what is the version of the SharePoint that you are experiencing this? In my SP2010, i am experiencing same behavior when using update-spsolution but it also happens to CSS published GhostableInLibrary as well. VS2010 development tools seems to be updating properly though –  Roman May 4 '13 at 1:13
    
This was SharePoint 2010 and Visual Studio 2010. Never did find 100% solution, just used workaround. This project has been done for a few years though. –  Shane May 6 '13 at 14:35

4 Answers 4

The module element won't replace files that have already been provisioned.

You'll need to delete them from Feature deactivating if you want to re-provision files in a feature.

share|improve this answer
    
But I'm able to do this with CSS files all the time. For example, I make a change to my primary CSS within VS2010, then provision it and it updates. The CSS is setup in the same was in a module –  Shane Apr 25 '11 at 19:49
    
Hmm, browser cache? –  James Love Apr 25 '11 at 20:00
2  
To verify press ctrl+f5 –  Anders Rask Apr 26 '11 at 6:03
    
Not a CTRL-F5 issue, if I looked at the files in the style library, the files aren't getting updated. Like I said, my workaround was just to delete the folder all together and then it seemed to start working. This works for the Style library folder, but not when doing page layouts because I can't delete that folder. –  Shane May 29 '11 at 0:23

It this is your dev server, try to use "copy to 12 hive" in context menu in visual studio (you need cksdev for this feature to be available).

If updating the artifacts this way doesnt work, the files have been unghosted, probably by gui or SharePoint designer.

Notice also that publishing pages will get special meta tags at the start of the document if they are created in SharePoint designer, triggering customization even if files are provisioned with modules and ghostableinlibrary!

Also please describe the specifics on your provisioning. Are you using visual studio or PowerShell? Upgrade solution or a full uninstall, remove, add, install? How do you activate features? Do you have feature eventhandler code? Note that upgrading solution will not register added or deleted artifacts...

share|improve this answer
    
Made sure that noone is modifying the files in designer or Web UI, therefore all files stay ghosted. –  Shane Apr 25 '11 at 20:58
    
Using PowerShell to do an Update-SPSolution, but have tried retracting/redeploying, etc. –  Shane Apr 25 '11 at 20:58
    
Did you try any of my other suggestions? –  Anders Rask Apr 26 '11 at 6:03
    
I'd been trying with full retract and deploy using PowerShell. I'm able to use a workaround by deleting the folder in Style Library, but have yet to get to the root of the problem. –  Shane May 29 '11 at 0:25

I agree with Anders' comment. It sounds to me like a client issue, not a server issue. Definitely try ctrl-f5 first.

As has been mentioned, as long as the images are still ghosted and have not been modified manually (this can include SharePoint Designer or even someone uploading a new version), then your library is using the files from the web server, not from the content database. As long as the images are ghosted, you can update them on the server as many times as you would like. To get the images to the web server, upgrade or retract/deploy the solution package, but you should not need to reactivate the feature, run issreset, modify the elements file, or reboot. However, just because you update them on the server, it is possible that the client will continue to use the old version from their cache.

If ctrl-f5 does not work (and you are confident the images are still ghosted), I would double check that the files have been properly updated on the web server. Activate the feature in a fresh site and check that the new versions of the images appear. Also, if you have multiple WFEs, make sure that the feature has been updated on each server.

share|improve this answer

In case anyone ends up on this page like I did with a similar situation, my files had in fact become unghosted for unknown reasons. Borrowing and modifying a script found on the internet, I ran the following code to determine the status:

public static void CheckCustomizedStatus(string siteColURL, string listName, string[] filterExtensions)
{
        filterExtensions = filterExtensions.Select(ext => ext.ToLower()).ToArray();
        using (SPSite site = new SPSite(siteColURL))
        {
            SPList list = site.RootWeb.Lists[listName];
            foreach (SPListItem item in list.Items)
                if (filterExtensions.Contains(item.File.Name.Substring(item.File.Name.LastIndexOf('.')).ToLower()))
                    Console.WriteLine("File Name:\t{0}\\{1}\tStatus:\t{2}{3}", item.File.ParentFolder.ToString(), item.File.Name, item.File.CustomizedPageStatus.ToString(), item.File.CustomizedPageStatus == SPCustomizedPageStatus.Uncustomized ? " (Ghosted)" : string.Empty);
        }
}

which is called with a method similar to this:

CheckCustomizedStatus("http://yoursite.org", "Style Library", new string[] {".css"})
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.