When deploying Portal web pages, CRMQuickDeploy uses the web page’s name in CRM (and the filename of the project item) to identify the target web page for deployment. Since version 8 of CRM Portal however, we have the ability to localise web pages. This created a small problem for CRMQuickDeploy, since by default the name of the localised pages are the same as the name of the root page. Below is how the root and localised pages would look by default:
The workaround (before now)…
The way we have worked around this was to edit the name of the localised web pages to make them unique. We appended the language name to the name of each localised web page, e.g. Contact Us (English) and Contact Us (Spanish), and named our Visual Studio project items accordingly.
Issue with CRM Portal v9…
The above workaround was a bit annoying but it worked well and did not take up too much time. It recently came to my attention however that CRM Portal v9 (i.e. the cloud version) automatically reverts the name of the localised web pages back to be same name as their root pages.
Yes, in CRM Portal v9, you can edit and save the name of the localised web pages. However, if you later on reopen the localised web page record in CRM’s web client, then the form automatically reverts the name back to be the same as the root page. This means that the workaround described above is no longer viable.
Improved web page language targeting in CRMQuickDeploy
To address this issue I have released a new version of CRMQuickDeploy that allows you to define the target language for web pages by placing the Visual Studio project items into a folder. The name of the folder is the name of the target language.
So for the above example, the structure of the Visual Studio project would look like this:
Under this approach, English\Contact Us.html for example would be deployed to the Contact Us web page where the language of that page is set to English. Note that only the immediate parent of the VS project item is used to determine the target language.
Enabling web page language targeting
To prevent this new approach from breaking your current project structure, this new feature of web page language targeting must first be enabled in Visual Studio. You can do this by going to Tools \ Options \ CRMQuickDeploy \ Deployment Options and set Use Folder to Determine Web Page Language to True.
When this option is enabled, each web page must be placed in a folder (underneath the PortalWebPages folder). The name of the immediate containing folder will be used as the target language for its children web pages.
You can download CRMQuickDeploy from the Visual Studio Gallery.
So there you have it…
This new feature allows you to target web pages more efficiently, and works against both on-cloud and on-prem (v8) CRM Portal.
As always, would love to hear from you with feedback and suggestion!