1. Creating InfoPath:
I have created the following InfoPath for demonstration purpose, please ignore the content. Before we go further I believe you have your InfoPath form ready for deployment.
2. Publish InfoPath: Please follow the below steps to publish the InfoPath form
Step 1: Change the Security Level to “Full Trust”.
Note: This is required because the private assembly for a managed code form template is running under a hosted CLR application domain, the security settings for forms require full trust.
Step 2: Click on the ‘Info’ and you should find ‘Publish your form’
Step 3: Locate the path where you want to publish and name the template appropriately
Step 4: If you are not sure you may leave this field empty
Step 5: Publish the form.
3. Create Visual Studio Project:
Step 1 : Create an empty SharePoint project
Step 2: Add a feature and name it appropriately. Please make sure you have ‘Site’ as the scope of the feature as this InfoPath is deployed as content type
Step 3: Add a new Element File
Note: Empty elements are most often used to define SharePoint project items that lack a project or project item template in Visual Studio, such as fields. When you add an empty element to your project, it contains a single file that is named Elements.xml. Use XML statements to define the desired elements in Elements.xml
Step 4: Add the dll and the InfoPath to the element folder as shown below
Step 5: Configure element properties as shown below.
Note: Use the XsnFeatureReceiver class to trap events that are raised after an InfoPath form template installation, uninstallation, activation, or deactivation on the server. The assembly and class name used to trap these events must be referenced in the feature.xml file used to deploy the SharePoint feature containing one or more InfoPath form templates.
Feature.xml file would look as below <?xml version="1.0" encoding="us-ascii" standalone="yes"?> <Feature Id="39EBA28E-2238-4C82-A37E-81BAEBFB7A61" Title="Simple Form Template" Description="This feature deploys infopath as content type" Version="1.0.0.0" Scope="Site" ReceiverClass="Microsoft.Office.InfoPath.Server.Administration.XsnFeatureReceiver" ReceiverAssembly="Microsoft.Office.InfoPath.Server, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c" xmlns="http://schemas.microsoft.com/sharepoint/"> <ElementManifests> <ElementManifest Location="Elements.xml" /> <ElementFile Location="InfoPathasFeature.xsn" /> </ElementManifests> <ActivationDependencies> <ActivationDependency FeatureId="C88C4FF1-DBF5-4649-AD9F-C6C426EBCBF5" /> </ActivationDependencies> </Feature>
Step 6: Include the .xsn, dll to be a part of deployment files.
If you preview your feature you would see the following the are no items in the feature except for the ‘Element.xml’. See how it changes after completing this step
Modify the xsn properties, change the ‘Deployment Type’ to ‘Element File’
Modify the dll properties, change the ‘Deployment Type’ to ‘ElementFile’
Note: Setting the ‘DeploymentType’ to ‘ElementFile’ specifies the deployment of element files to SharePoint. Element files are referenced by the feature manifest (feature.xml). The default path for ElementFile is {SharePointRoot}TemplateFeatures.
After completing the above modifications, you will find the items in the feature as show below.
Step 7: Package and Deploy the project
Step 8: After you are done with deployment, verify if the folder structure is shown as below
Follow the below steps to set the default content types to the form library.
Navigate to the advanced setting of the ‘Form Templates’ library and select ‘Yes’ as shown below.
Navigate to the ‘Add Content Types’ Screen & if you select “All Groups” or preferable “Microsoft InfoPath” you should find the “InfoPathasFeature” Content Type in the list.
Check if the content type is added:
Your are done! Check if the InfoPath is showing up if you select ‘New Document’ as below
References:
1. How to: Deploy InfoPath Form Templates with Code
2. Security levels of InfoPath forms
3. XSNFeatureReciever Class
I was suggested this website by means of my cousin. I’m now not certain whether this put up
is written by way of him as nobody else recognize such special approximately my problem.
You’re amazing! Thank you!