

This can be solved with a little bit of scripting and vswhere or we can use a dedicated Github Action for that: - name: Setup MSBuild.exe


Unfortunately, the path to msbuild is not added automatically to the PATH environment variable and we need to somehow figure out where it is installed. The windows based virtual environment for Github Actions has pre-installed msbuild. This kind of solution needs to be built with the msbuild directly. Problems 🔗︎ You can’t build with dotnet build 🔗︎Īfter a few hours of struggling with the compilation, I discovered that you can’t build a solution that contains VSIX project with dotnet build even if all your projects are in the new csproj2017 format ( Issue#12421). After around 10 hours of googling and experimenting, I managed to assemble two complete workflows: one for Pull Request verification and one for automatic release. Unfortunately, I didn’t find there a complete example workflow for building an publishing Visual Studio extensions. The official GithubActions documentation together with actions/starter-workflows repository are really good starting points. However, I’m a huge fan of integrated solutions because they require much less work for setup, and since GithubActions became generally available I wanted to give it a try. So far I’ve been using AppVeyor for building and testing my extensions. Because I work on those tools only in my free time, the word “time” is a key here, so automation really matters. I discovered the power of Roslyn over three years ago and since then I’ve developed three Visual Studio extensions and a couple of code analyzers.
