Enable additional language in CDS with Azure DevOps Pipelines
Posted On 2020-10-22 • 6 min read
In this blog post, you will learn how to enable additional languages in your CDS environment with Azure DevOps pipelines.
This post can be considered the second post in a series of blog posts that talk about different approaches to solve challenges with Azure DevOps Pipelines that cannot be solved with the Power Platform Build Tools. The first blog post in that series explained how one could create its own application to solve a problem.
In one of my earlier blog-posts, I described how to set up a Basic ALM Process. This process uses a JIT (Just-In-Time) environment to build the managed solutions. The general idea is to create the environment whenever you would like to create your managed solutions (right before deployment to the first environment which is not development). This is done to get rid of old stuff and minimize dependencies. There are some issues with that approach. Just to mention some of them:
Generating an environment from scratch takes a lot of time.
Installing ISV solutions could be complicated. Especially when there are manual install steps.
The new Connection References in Power Automate flows require a manual step when they get installed the first time.
If you have Early Access installed in your other environments the JIT-Build environment needs that too.
If you have different languages in your solution you must enable them as well.
What we ended up within one of our projects is to recreate the JIT environment whenever we have deployed to prod. This means that we reuse the same environment between two releases. After that, we delete the JIT environment and recreate it, to get rid of leftovers (old stuff that was not cleaned up since the JIT environment is unmanaged) and minimize dependencies.
The goal is to automate the process of recreating the JIT environment as much as possible.
This blog post tackles the above-mentioned language problem.
Let’s assume your implementation is using more than one language. If you create a JIT environment automatically you have to enable all the needed languages. Otherwise, your translation will be lost in the process of creating managed solutions.
Let’s see how we can automate the process of installing/enabling an additional language in your environment.
Like always there several solutions that could fix that problem
One could execute this step manually
One could write a small application that does that
One could use a PowerShell Module
As mentioned earlier: One of my previous blog posts describes the solution of creating a small application.
After we created the PowerShell script and stored it in our repository, we have to call this script in a pipeline.
For the ease of this article, I will use a blank pipeline that only will execute our needed step.
We need the following variables:
This variable contains the LCID of the language we would like to install. By checking the checkbox “Settable at release time” we are able to choose the solution for every release.
This variable will contain only the password of the user you are using. It is important to check the little lock so that DevOps knows that it contains a password. If this is checked DevOps will not show the content or write the content in logs.
This variable should contain the connection string to your org, with the password as an Azure DevOps parameter. It should look something like the following.
This is just 1 of 57 articles. You can browse through all of them by going to the main page. Another possibility is to view the categories page to find more related content. You can also subscribe and get new blog posts emailed to you directly.
Privacy & Cookies Policy
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.