Are you still building exe in your local PC ?
Or maintain a dedicated PC that goes power-cycle at a stormy day or goes dead when HDD break down ? Aren't you tired of maintaining those build PCs ? Here is a story that can put those worries to history - only for .NET application using Azure DevOps now.
Cloud will build like local
Here,I want to make the build process runnable in the local PC as well as in the cloud - Azure DevOps - so that you can verify your change locally and you push the changes and know that the cloud will build your code in same manner. Then, once you fixed something on your local PC, you are just one push away to finish. Now if you sold, be patient and try to follow below.
Create Azure DevOps project
First, go to
Azure DevOps and create a new project
Then clone the repository to your local PC. Or just clone
template project
Directroy structure
Now you will populate the workspace with below directories. Or just copy and paste
template project.
/build : contains build batch, project
/src
/bin : generated dll, exe, pdb goes here
/packages : dependent component such as NUnit goes here
/Foo : various VS solutions
/Bar
...
Local build
In local, you can open *.sln file at IDE and code and debug and build. Then you will open a command prompt and run build processs that will goes through all the solutions and make sure nothing break down by your change.
To make the process as easy as double-click an icon, there is Build command-line icon ath the build folder. When double click the icon, msbuild will be executed to build the whole process. Try to follow those arrows at below.
Your aim is to see below 'Build succeded.' like below.
Install packages
NuGet can put referenced dll on your local folder. It needs PackageReference instead of package.config - package.config will install packages at global repository. If correctly setup packages, you can find line something like below at csproj.
The folder to hold those packages should be defined at nuget.config at the root folder.
During build process, those packages should be downloaded and installed - called restore. At local build, it can be defined at the build.proj like below.
Build and test
MSBuild task builds all solutions file listed up like below.
And it can test all the unittest like belew.
If you want to debug the code - put a breakpoint - at the unitest, you will need to put '/process=Single'.
zip up binaires
After successful build and test, those dll, exe and relevant files can be zipped up. At below, files at src\bin\debug|release are ziped to src\bin\install\SampleNetApp.{Debug|Release}.zip
Do the same thing at cloud
Azure can do what you did on local PC on cloud. It just need azure-pipelines.yml at the root folder.
Then whenever you pushed change on git, then pipeline will start and build. You can look into build log.
With everything in place, you can get the build as zipped file at artifact.
Now as promised, you get the build from cloud in addition to your local PC. This is a simple continous integration of .NET application but it can be a good starting point on your journey.