5

I am stuck on creating azure batch pool with .net 4.6.1.

I went through those very good resources:

and I found out that there is a way to use .net 4.6.1 without installing it manually on a node. There is a programmatic way to set up Windows Ghost image with the latest .net version which is .net 4.6.1 but my node is defined in advance.

enter image description here

I need to have .net 4.6.1 because we use Data Factory and custom activities which are run on azure batch nodes. We upgraded .net version manually on that node but Microsoft doesn't guarantee that the state will preserve and we noticed a few times that node was reset to its original state.

My questions are:

  • do you know if there is any way on azure portal to choose OS family set to Windows Server 2016 with installed .net 4.6.1 version already?

  • does anybody know when there will be any os with .net 4.6.1 available?

  • or should I go with StartTask feature and try to install .net 4.6.1 manually? However, that option sounds like some workaround and not the correct solution.

Emre Bolat
  • 4,316
  • 5
  • 29
  • 32
adam.bielasty
  • 671
  • 9
  • 20

3 Answers3

2

There is not. They have said that when server 2016 releases on azure, it will be available on batch. Until then, the 4.6.1 install as a startup task is your only option. They also will, at some point, allow us to use custom images, rather than their pre-made images.

jamesbascle
  • 854
  • 1
  • 10
  • 17
  • Thanks @jamesbascle. That is a good news that Microsoft is going to allow us use custome images in the future. I tried to go and do it in StartTask but I gave up as it looked like workaround of workaround and personally StartTask for installing different .net version even sounds bad. Thanks for your answer – adam.bielasty Jun 28 '16 at 15:51
  • I started trying to do it like that way, and actually got it working, but in the end decided it wasn't worth the brittleness, and just went with downgrading my stuff to 4.5.2 – jamesbascle Jun 29 '16 at 17:27
  • Could you please describe how you made your StartTask working properly. Did you use some console app, script, etc.? That would be much appreciated – adam.bielasty Jul 06 '16 at 11:04
  • Sure. I basically downloaded the installer from MS website, and just kicked it off using a .CMD script. I wouldn't recommend it really, because it takes a while, and the machine has to restart afterwards for everything to work. – jamesbascle Jul 07 '16 at 18:47
1

Updated 2016-02-07:

You can now deploy OS Family 5 under Cloud Services Configuration in Azure Batch, which is equivalent to Windows Server 2016 (as Marketplace/VM image).

Previous answer:

Answers to your questions:

do you know if there is any way on azure portal to choose OS family set to Windows Server 2016 with installed .net 4.6.1 version already?

Yes, you can change the "Image Type" to Marketplace and select 2016-Datacenter which is Windows Server 2016.

does anybody know when there will be any os with .net 4.6.1 available?

As per above, it's available now for Marketplace (IaaS) under 2016-Datacenter. The Batch team is currently working to support OS Family 5 as a guest OS for Cloud Services.

or should I go with StartTask feature and try to install .net 4.6.1 manually? However, that option sounds like some workaround and not the correct solution.

You can always install it as part of a start task and is considered the proper solution for Azure Batch proper for compute nodes with Windows Server < 2016.

fpark
  • 2,304
  • 2
  • 14
  • 21
  • thank you for your input. I tried this technical preview of Windows Server 2016, but DataFactory custom activity does not work with that yet unfortunately. The only option I have is to use StartTask or to wait for Windows Server 2016 GA version – adam.bielasty Sep 12 '16 at 10:58
0

You will still have to use the StartTask to install .NET 4.6.1. In the first resource you mentioned, there's a small piece of code that checks the current .NET installation and installs+reboots if needed.

If possible, downgrade your application's .NET version to 4.5.2 to save the hassle of restarting the node.