We have an old Silverlight project that we have to maintain while a modern replacement is developed. For build and publication, we use Azure DevOps. The problem arose after Windows 2019 and 2022 remained in the available images of Azure DevOps. With versions of VS with which the project with Silverlight stopped building. Visual Studio Enterprise 2019 16.11.32901.82 Visual Studio Enterprise 2022 17.3.32901.215
2022-09-10T14:26:05.9397408Z ##[error]abcWebSilverlight\abcWebSilverlight.csproj(1056,11): Error MSB4226: The imported project "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Microsoft\Silverlight\v5.0\Microsoft.Silverlight.CSharp.targets" was not found. Also, tried to find "Microsoft\Silverlight\v5.0\Microsoft.Silverlight.CSharp.targets" in the fallback search path(s) for $(MSBuildExtensionsPath32) - "C:\Program Files (x86)\MSBuild" . These search paths are defined in "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin\msbuild.exe.Config". Confirm that the path in the <Import> declaration is correct, and that the file exists on disk in one of the search paths.
Now, to solve the problem with the building, I see two possible ways:
Somehow install the necessary VS version. I've googled all over the internet but can't find how to do it. In the Build task, I set the desired version and the build jumps to the available version of the studio because others are not installed in the system.
Dirty hack. Try to somehow install the extension https://marketplace.visualstudio.com/items?itemName=RamiAbughazaleh.SilverlightProjectSystem&ssr=false#qna in the hope that the project will work. But then again, in Azure DevOps, I don't see a tool that allows me to do this.
I would appreciate any advice on a possible solution to my problem. Thank you.
You cannot use Visual Studio 2017 or later to build old Silverlight (v4 or v5) projects - you have to continue using Visual Studio 2015.
Source: https://learn.microsoft.com/en-us/visualstudio/releases/2017/vs2017-compatibility-vs
Silverlight projects are not supported in this version of Visual Studio. To maintain Silverlight applications, continue to use Visual Studio 2015.
In Azure DevOps, the only way to get this to work is to setup your own instance of Windows with VS2015 (or the VS2015 build tools) installed and then also install the Azure DevOps self-hosted pipeline agent (for building: https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/agents?view=azure-devops&tabs=browser#install)
The instance can be either on-premises or cloud-hosted (either Azure or even an AWS VM instance) and will work so long as it can access the internet to communicate with Azure DevOps (configuration is a bit different if you're using DevOps Server).