We have 2 projects in visual studio.

Project 1 has 2 features.

        Feature A is site scoped module 
        Feature B is web application scoped feature stapler. (empty element with FeatureSiteTemplateAssociation)

Project 2 has 1 feature (Feature X) that deploys list.

I want to staple the feature X to Feature B. So I am putting the feature id of feature X into the empty element (Feature B) of Project 1 as: <FeatureSiteTemplateAssociation Id="IDofFeatureX" TemplateName="GLOBAL" />

Is this good practice?

1 Answer 1


There is n o restriction as such that both the features should be in same project. It is always good practice to keep a separate project for site columns/content types/List & Libraries.Below are the points to be kept in mind while creating feature stapling:

  1. Staplee feature should be having higher scope than stapled feature. eg: if stapled feature is site collection or web scope , then staplee feature should be web app scoped.

  2. Since you are trying to activate the feature in every template ie TemplateName="GLOBAL" , it is helpful to understand about the AllowGlobalFeatureAssociations property of templates. If this property is set to FALSE, global association features will not be activated.So for such templates you will have to explicitly add FeatureSiteTemplateAssociation .Shared Services Provider site template and the Blank Site site template use the AllowGlobalFeatureAssociations="FALSE" property. Read this blog for more info.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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