Building Reporting Service .RPTProj files in Visual Studio 2022 from the command line

The Issue We have a number of projects that use the old style SQL Server Reporting Services (SSRS) .RPTProj project format. These projects are not supported in Visual Studio 2022 out of the box, but there is an extension in the Marketplace that adds the functionality back so you can build them in the IDE. However, we want to build our RDL files as part of our CI process, and this is where we hit a problem. When we attempt a build with MSBuild it fails with an error about missing .NET 4.0 SDK/Targeting Pack. ...

May 3, 2024 · 2 min · Richard Fennell

Creating an undo PowerShell Script for batch updates of Azure DevOps Work Items

Problem One of my client’s recently had a problem that a large number of Azure DevOps work items had been updated via Excel in error. They asked if there was a means to undo these edits. Unfortunately, a feature Azure DevOps does not provide. Solution So, I wrote a PowerShell script to do it. The script… Gets a list of work items edited today by a specific user, the one who did the problematic bulk update, using a Work Item Query Get the last update of each work item and check it was made by the user who did the bulk edit, incase someone manually fixed the problematic update already. For a limited list of fields, revert the change to the value prior to the last update Save the updated work item, or if the -whatif flag is set just validate the update against the Azure DevOps instance For my client, the script worked well enough, reverting over 1000 work items in about 5 minutes. The few work items it could not revert were fixed manually. ...

April 16, 2024 · 2 min · Richard Fennell

Personal Access Tokens (PATs) are not your friends

Background Programmatic connection to Azure DevOps cannot be done with your Active Directory credentials. This is because this involves a dialog being shown, and these days usually an MFA check too. Historically, the solution to this problem was to enable Alternate Credentials, which could be passed as username and password, without the dialog being shown. However, the use of these has been deprecated since 2020, and they have been completely removed since Jan 2024. ...

March 22, 2024 · 3 min · Richard Fennell

It is really time to get off Azure DevOps TFVC source control

A History Lesson Team Foundation Version Control (TFVC) has been around since 2005, since the first release of Team Foundation Server (TFS) in 2005. In 2013, over 10 years ago, Microsoft added Git support to TFS (later renamed as Azure DevOps), Git had already been around for 8 years at that point. 10 years is a long time in the software industry, I always think of ‘IT years’ like ‘dog years’ i.e. 7 to 1, so over 70 years has passed, a lifetime. Over this period Git has become the de facto standard for source control. So if you are still using TFVC as your source control system you really need to ask yourself why? ...

March 21, 2024 · 4 min · Richard Fennell

Don't forget to commit your configuration file

It is a major effort, often unfortunately ignored, keeping the dependencies in an open source project up to date. This was highlighted in Jesse Houwing’s post on the state of the Azure DevOps Marketplace. Since reading this I have made much more of an effort to keep my Azure DevOps Extensions up to date. Dependabot generated PRs have been a great help in this regard. Creating PRs for vulnerabilities and out of date dependencies. ...

March 20, 2024 · 1 min · Richard Fennell

Parsing error with Azure Bicep files in SonarQube

The Issue We saw an issue with our SonarQube 10.3 Developer Edition (that is running as a Docker image hosted in Azure) when it was doing the analysis of a project that included Azure Bicep files. The Azure DevOps pipeline that triggered the SonarQube analysis was not failing, but within the SonarQube analysis step an error was reported in the task log INFO: Sensor IaC AzureResourceManager Sensor is restricted to changed files only INFO: 1 source file to be analyzed ##[error]ERROR: Cannot parse 'AzureServices/QueryPack.bicep:89:1' The Solution Turns out the problem was related to parsing Bicep files for App Insights Query packs. ...

March 19, 2024 · 2 min · Richard Fennell

GitHub Events not being triggered for auto-merged Dependabot PRs

Background I have an Azure Static Website that is built from a GitHub hosted repo using the default Action Workflow automation created by Azure when setting up the static site. A really nice feature of this configuration is that when a PR is created in GitHub a test static website environment site is built in Azure to review the changes. When the PR is closed the test environment site is deleted. ...

March 18, 2024 · 4 min · Richard Fennell

Site fails to render when updating Hugo version

The Issue This site was built using Hugo, a static site generator. I recently tried to do a long overdue update the version of Hugo from 0.108 to the current 0.122 version. I had not expected any problems, but found that the site failed to render, but with no error message all I saw was hugo.exe server --logLevel info Start building sites … hugo v0.122.0-b9a03bd59d5f71a529acb3e33f995e0ef332b3aa+extended windows/amd64 BuildDate=2024-01-26T15:54:24Z VendorInfo=gohugoio INFO copy static: syncing static files to \ INFO build: running step "process" duration "97.3263ms" INFO build: running step "assemble" duration "335.1476ms" I normally would have expected to see a INFO build: running step "render" line or an error, but got nothing, irrespective of the log level I set. ...

February 16, 2024 · 2 min · Richard Fennell

Getting a BadGateway error when trying to create Azure DevOps Work items using Power Automated

I was recently trying to create an Azure DevOps work item when an email is received using the Power Automate ‘Create an Azure DevOps work item when email arrives with ‘Bug’ in subject’ template. The flow created without issue, and all the drop downs were correctly populated with O365 and Azure DevOps values as expected. However, when the flow ran, on receiving an email to the correct inbox, it failed with a BadGateway error. ...

February 13, 2024 · 2 min · Richard Fennell

I can't get git.exe installed on my corporate PC

Issue Many development tools rely on the fact that git.exe is installed to perform source control operations e.g. VSCode. However, a common problem I have seen is that security settings on many corporate Windows devices do not allow the installation of git CLI using an MSI file by the user. VSCode is an approved application, or installed as a user application as opposed to a system one, so is available but limited by it’s lack of source control features. ...

February 2, 2024 · 4 min · Richard Fennell