I am using Azure DevOps to deploy a .Net Web Application. I wanted to update to the new Os Family which is based on Windows 2019 so i can Update my projects to .net framework version 4.7.2 as seen here. I have updated my cloud service configuration '.cscfg' file to osFamily="6" but when i try to deploy the app even though the Build succeeds i get this error when i reach the Release step in Azure pipeline:
The OS family 6 you are trying to deploy is not supported by the SDK package. The SDK package supported OS families:3,4,5,1,2,98,97. Please try to deploy to a different operating system. To do this specify a different osFamily and/or osVersion in your .cscfg file.
I am using the Hosted VS2017 agent.
According to the error information it indicates that the OS family 6 are not supported by Hosted VS2017 agent.
Based on the link you mentioned that Compatible SDK versions should be Version 2.9.6+.
So my workaround is that you could use the Self-host agent with latest Azure SDK installed. We could download the latest Azure SDK from this link.
or you could have a try to install the Azure SDK on the Host 2017 agent (without test)
You also could give your feedback to Azure Devops team.
Related
Problem
After upgrading a .Net Core 2.2 Linux Web App to .Net Core 3.1 in Azure, the application is down with a Specified framework 'Microsoft.AspNetCore.App', version '3.1.0' was not found error. I even went as far to create a new Linux Web App with .Net Core 3.1, and after the bash command prompt is still outputting dotnet --list-runtimes as 2.2.7.
Details
Website Down
Logstream
reporting application is down because it can't find .net core 3.1.
Created new .net core web app
3.1 linux webapp in North Central, same problem
Ensured it was running in North Central US
According to https://aspnetcoreon.azurewebsites.net/, should have full .netCore 3.1 support
Still .net core 2.2.7
opt/dotnet/runtimes lists 3, 3.0 and 3.0.0, but no 3.1`
Environment variables
My environment variables in Azure list FRAMEWORK_VERSION = lts, instead of 3.1
Publishing
This was published from an azure devops ci pipeline using an Azure AppService Deploy task. 3.1 wasn't available here, so I chose LTS
Update 1
It seems the culprit is 3.1 missing from the framework stack in Azure Devops Web App / Web Service tasks.
Whenever I publish from CI, the web app framework is updated to whatever is selected in this dropdown. If I manually go change the framework to 3.1 on the Azure Web App, the site comes up. But then the next publish it goes back down because it reverts the framework back to the settings in the ci.
New Question
How can I get the Azure Devops Release pipeline to publish a .net core 3.1 task?
Update 2
Related Azure Devops forum post
Currently being investigated as of 2/23/2020
.Net Core 3.1 deploy pipeline to Linux App Service
Suggested Workarounds
Use YML for release pipeline and manually change the version from 3.0 to 3.1, noted by answer and this thread
Upgrade from a framework dependent release to a self contained. Reference
Downgrade to .NetCore 3.0
I've run into the same situation, using the information you provided I've been able to fix the issue by setting the value manually in the Devops Pipelines Build .yml file. It seems like they are just missing the value from RunTime Stack drop down. If you manually update the build processes .yml file as seen here:
This will select the proper framework version. Hopefully this will fix your issue with the Azure Devops CI Pipeline deployment.
An easier solution is to type DOTNETCORE|3.1 into the Runtime Stack dropdown in devops. (Thanks rdavisau!)
I am trying to update a cloud service to use .NET 4.6. I changing the osFamily="4" to osFamily="5" in the .cscfg file as specified here: https://learn.microsoft.com/en-us/azure/cloud-services/cloud-services-guestos-update-matrix
Looking at my file system I have this SDK version installed:
C:\Program Files\Microsoft SDKs\Azure.NET SDK\v2.9
Looking at Web PI, I have these installed:
VS Community 2105 with Azure SDK - 2.9.6
VS Community 2105 with Azure SDK - 3.0
Microsoft Azure SDK for .NET (VS 2015) - 2.9.6
Microsoft Azure SDK for .NET (VS 2015) - 3.0
I normally use Powershell cmdlets to deploy using New-AzureDeployment/Set-AzureDeployment from a build & deployment server. I will occasionally deploy from my desktop using powershell for testing.
If I leave the osFamily="4" unchanged and deploy with Powershell everything works as expected.
If I use VS2015 and the Publish Azure Application tool to do the deployment it succeeds as expected if I choose either osFamily="4" or osFamily="5".
Checking which module is used:
C:\> (Get-Command Set-AzureDeployment).Module.Path
C:\Program Files\WindowsPowerShell\Modules\Azure\3.8.0\Azure.psm1
Running the deployment Set-AzureDeployment (given an existing package has been deployed) gives me the following error -
Set-AzureDeployment : BadRequest : The OS family 5 you are trying to deploy is not supported by the SDK package. The SDK package supported OS families:3,4,1,2,98. Please try to deploy to a different operating system. To do this specify a different osFamily and/or osVersion in your .cscfg file.
I don't see which SDK "package" the commandlet is complaining about...any ideas?
Try using a newer version of the 2.9 Azure Authoring Tools.
I reproduced this problem with Azure Authoring Tools 2.9.1, but remedied it by upgrading to version 2.9.5.3. Actually it's mentioned as fixed in the release notes for Azure '3.0' SDK (download link):
Visual Studio now supports deploying Cloud Services to OS Family 5
(Windows Server 2016) virtual machines. For existing cloud services,
you can change your settings to target the new OS Family. When
creating new cloud services, if you choose to create the service using
.net 4.6 or higher, it will default the service to use OS Family 5.
For more information, you can review the Guest OS Family support
table.
I am not sure if I download Azure SDK 2.7 will it let me target .NET 4.5.2? Currently I have Azure SDK 4.5 and it does not let me publish when I have a worker role targeting 4.5.2.
Thanks
Worker roles currently do not support .NET 4.5.2 without manual installation.
You can either set up VM access to install .NET 4.5.2 onto the worker role's underlying VM or look at usin a powershell script to install it when your application starts up.
See proof in release notes for SDK 2.6 and instructions to how install .NET on cloud services here.
Azure SDK's currently only allow you to target 4.5.1 in PaaS services. Azure SDK v2.5 and on is able to to target 4.5.2 but only if it is a VM instance
https://msdn.microsoft.com/en-us/library/azure/dn873976.aspx
We just upgraded from the Windows Azure 1.7 SDK to 2.0.
This created a lot of problems in the codebase, but we got them ironed out and running locally.
Now when we try to publish to our cloud service machine in Azure, the worker role keeps trying to run but can't start.
My guess is that the cloud service machine is missing the 2.0 SDK.
Is there some way to install this manually on the remote machine? I can RDP and I've been looking around, but I can't seem to a) Verify which version it's trying to use and b) How to install a newer SDK.
I've found some errors about the worker role not running, but they're pretty uninformative.
The solution ended up being pretty simply, but I imagine other people will run into this problem.
We had 5-7 projects all referencing Azure SDK 1.8. Specifically these libraries:
Microsoft.ServiceBus
Microsoft.WindowsAzure.Configuration
Microsoft.WindowsAzure.Diagnostics
Microsoft.WindowsAzure.ServiceRunTime
Microsoft.WindowsAzure.StorageClient
If the project is a cloud service project, you need to right click on the project, go to properties, and upgrade the project. This changes the deployment when publishing. It will create the Azure VM based on the cloud service Azure SDK version. I missed that at first.
All the libraries above need to be upgraded to SDK 2.0 in all projects. Initially I missed some projects that were dependencies - and missing the Microsoft.ServiceBus library.
The last part was moving from Microsoft.WindowsAzure.StorageClient to Microsoft.WindowsAzure.Storage. I guess for SDK 2.0 they changed the library name, which has also introduced some breaking code changes.
After all that the cloud service now publishes correctly. Whew.
Im new to Azure and wanted to create a Continuous Integration build using TFS. I created a build definition but building my Cloud App with simple website using a hosted buildserver in the build definition fails with error:
C:\a\src\myAzure\myAzure\myAzure.ccproj (70): The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\Windows Azure Tools\2.0\Microsoft.WindowsAzure.targets" was not found. Confirm that the path in the declaration is correct, and that the file exists on disk.
I can however build locally, and manually Publish to Azure and it will deploy fine.
Im suspecting that the hosted buildserver of TFS does not support Azure 2.0?
Is there a way around this problem or will I have to forget the idea of using CI?
Seems to be so since the Build is a preview feature of the Team Foundation Service. There was the same thing with Azure SDK 1.8, but they updated the Build Servers in a couple of days. Hope that it will not take long this time.
UPDATE:
"No, TF Service hosted build machines do not have the new SDK 2.0 at this time. We expect all users to have Azure SDK 2.0 support post June 1st. In the meantime you will need to use an on-prem build controller with the bits you need and deploy to Azure from there."
(C) Trevor Hancock from Microsoft
http://social.msdn.microsoft.com/Forums/en-US/azuretfs/thread/2df796d5-1abb-4b89-a571-0b7a62b80d55
UPDATE 2:
I've managed to complete a successful build using TFS build servers with SDK 2.0 So I think this problem is resolved for now. In future I recommend not to do updates to new versions of Azure SDK until the TFS build servers are ready.