I'm not doing anything terrible complicated here. The solution is exactly the same as the one you'll see reproduced on a thousand blogs (even here, on stackexchange).

My code looks like this:

    <?xml version="1.0" encoding="utf-8"?>
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
    Description="This is my custom action."
    Title="Open The Page"
    <UrlAction Url="~site/_layouts/CustomStuff.aspx"/>

Basic stuff. Scoped for the web application (I've also tried every other scope, FYI). But, for some reason, it's only showing up on sites that have gone through the visual upgrade. It's not showing on 2010 mode SharePoint 2013 sites.

Anyone know why? Or a solution that will allow me to do this on 2010 mode SP2013 sites?

Edit: Something I wanted to add, I've already tried using the UIVersion attribute of the CustomAction element, to no avail.


The answer is silly and makes me feel silly. This comes from me being more of a developer than an administrator in a large enough environment where those roles are separate.

It comes down to how Visual Studio deploys SP2013 projects. In this case, there doesn't appear to be a place to explicitly state the Compatibility Level of the solution, which is a thing you can do in powershell:

Install-SPSolution -Identity solution.wsp -GACDeployment -CompatibilityLevel{14,15}

That did it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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