This question is in reference to Atlassian Documentation: Bitbucket Pipelines (beta)
I'm wondering is pipelines support to build .net framework? I didn't see .yml config for .net. Please advise.
Hello I would like to ask the same question. Will there be in near future any solution to this? We need to build applications with .net 4.7.1 in pipelines and due to missing TPT inheritance in Entity Framework core we cannot use .netCore images. Thank You for reply
One of our customers provided an example of a Bitbucket Pipelines configuration for a .NET Core application. You can find it on Bitbucket.
We do not yet support running pipelines in Windows environment but we're keeping an eye on the work that Docker and Microsoft are doing together.
Here's my "best effort" for testing .Net projects in Pipelines.
So, we know that there is no msbuild support at the moment.
And porting to .Net Core is not a good solution.
However, I've come up with a halfway house.
A way to test your C# with Pipelines, but still output a Full Framework build.
You need Visual Studio 2017
You're going to create new .csproj files for .Net SDK rather than msbuild
You will use the new <TargetFrameworks> node rather than the default, singular <TargetFramework> node
Each DLL has 2 targets by default, the .Net Standard 2.0 and the .Net Full Framework 4.5.1
Each entry project, be it EXE, ASP.Net, etc, also has 2 targets, .Net Core 2.0 and .Net Full Framework 4.5.1
Two unfortunate, serious limitations exist:
1) You can't use Linq To Sql, you have to replace it or buy the drop in replacement LinqConnect by DevArt
2) You must either port your .Net web projects to ASP.Net MVC or Razer (any programming model older than that is not supported in ASP.Net Core) or test your ASP.Net web projects somewhere else
There's other changes, it's too much to list here, but by and large I've found most things "Just Work" until .Net Standard
So, your new DLL csproj files look like this:
Exe projects look like this:
By default, these include all files in your projects, as opposed to msbuild which includes zero files by default.
There's no GUI support for these project types yet. You need to hand write them. You'll need to put criteria in the references and nuget sections so each framework version has it's own section. You can add as many targets as you like, all the way back to .Net Framework 2.0! When you build these, it outputs (by default) 2 folders under bin. Their names match the target framework.
Once you get this working, you have two set of binaries. One is the full framework and it should be identical to what you built before.
The other binary is .Net Standard or Core and can be spun up and tested inside a .Net Core container in Pipelines.
The logic is that, for your business logic at least, if it passes your tests running under .Net Core, it's equivalent to passing under the full framework.
I'm still learning all this, I've only got to the point of everything compiling and it seems to run under both types of framework.
Most of the information I needed to learn to get this working so far came from this page:
MultiTargeting And Porting a .Net Library to .Net Core 2.0
It's a bit out of date, it's from when all of this stuff was in preview.
I know it's not what people are asking for, but it's the closest you can do without requiring live software to be ported to .Net Core
Good luck everybody! If I ever get an example project together, I'll post that here as well.
@PlanCZero I know you posted this a looong time ago but in case it may help you or others...
In our case, we really like Bitbucket but as we need to "Build" our .NET Framework projects we are using BitBucket and Azure DevOps together. So, we have a Pipeline defined in Azure DevOps getting the source code from BitBucket.
Therefore, we are able to build our Windows .Net Framework projects in Azure Devops while still maintaining our code on BitBucket. They both integrate really well and you can get the Build status from both tools ;)
Here are two blog posts about building .Net apps in Pipelines, using the docker image:
This is not an answer.
However it is a solution.
Look into using .Net Standard 2.0 and up.
Targeting .Net Standard allows your project to multi target .Net Full and .Net Core.
2.0 and up allows you to use most .net tools like MVC, razor and entities frame framework.
Your project can even be set up to produce multiple sets of binaries.
I recently reviewed a whole lot of CI tools - I use BB Pipelines for the Node frontend and Visual Studio Team Services for the .NET part. I have to say it has improved a LOT since I last used it a few years ago. The scrum tools are massively improved too. BuddyBuild is a fantastic CI tool but uses Mono for .NET. So I would check out VSTS. When BB comes out of beta I am moving all my Node projects to VSTS
Hi everyone, We are looking to learn more about development teams’ workflows and pain points, especially around DevOps, integrations, administration, scale, security, and the related challeng...
Connect with like-minded Atlassian users at free events near you!Find an event
Connect with like-minded Atlassian users at free events near you!
Unfortunately there are no Community Events near you at the moment.Host an event
You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events