![](/img/trans.png)
[英]Changing from windows-latest to ubuntu-latest causes nuget package compatibility issues
[英]Azure Devops - Hosted pool - ubuntu latest - How do i get ubuntu-latest to have the latest visual studio build tools (preview 2022)?
我們的 azure devops 管道配置為使用托管的 ubuntu-latest
我正在使用需要包的 Azure 函數:packages/microsoft.net.sdk.functions/4.0.0 托管的 ubuntu 最新版本拋出不兼容的框架版本錯誤。
/home/vsts/.nuget/packages/microsoft.net.sdk.functions/4.0.0/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5):
error : It was not possible to find any compatible framework version
/home/vsts/.nuget/packages/microsoft.net.sdk.functions/4.0.0/build/Microsoft.NET.Sdk.Functions.Build.targets(32,5):
error : The framework 'Microsoft.NETCore.App', version
'6.0.0-rc.1.21451.13' was not found.**
當更改池以在本地構建代理上運行時,我能夠安裝最新的構建工具(visual studio 2022 預覽版附帶的工具)並且一切正常。 我的問題是如何讓 ubuntu-latest 擁有最新的 dotnet 構建工具?
這是 ubuntu-latest 代理的dotnet 信息的輸出。
2021-10-27T04:54:16.4629465Z .NET SDKs installed:
2021-10-27T04:54:16.4630372Z 2.1.302 [/usr/share/dotnet/sdk]
2021-10-27T04:54:16.4630865Z 2.1.403 [/usr/share/dotnet/sdk]
2021-10-27T04:54:16.4631327Z 2.1.526 [/usr/share/dotnet/sdk]
2021-10-27T04:54:16.4631821Z 2.1.617 [/usr/share/dotnet/sdk]
2021-10-27T04:54:16.4632292Z 2.1.701 [/usr/share/dotnet/sdk]
2021-10-27T04:54:16.4632746Z 2.1.818 [/usr/share/dotnet/sdk]
2021-10-27T04:54:16.4633218Z 3.1.120 [/usr/share/dotnet/sdk]
2021-10-27T04:54:16.4633687Z 3.1.202 [/usr/share/dotnet/sdk]
2021-10-27T04:54:16.4634147Z 3.1.302 [/usr/share/dotnet/sdk]
2021-10-27T04:54:16.4634616Z 3.1.414 [/usr/share/dotnet/sdk]
2021-10-27T04:54:16.4635086Z 5.0.104 [/usr/share/dotnet/sdk]
2021-10-27T04:54:16.4635541Z 5.0.208 [/usr/share/dotnet/sdk]
2021-10-27T04:54:16.4636008Z 5.0.303 [/usr/share/dotnet/sdk]
2021-10-27T04:54:16.4636462Z 5.0.402 [/usr/share/dotnet/sdk]
2021-10-27T04:54:16.4636703Z
2021-10-27T04:54:16.4637082Z .NET runtimes installed:
2021-10-27T04:54:16.4637683Z Microsoft.AspNetCore.All 2.1.2 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
2021-10-27T04:54:16.4638405Z Microsoft.AspNetCore.All 2.1.5 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
2021-10-27T04:54:16.4639112Z Microsoft.AspNetCore.All 2.1.12 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
2021-10-27T04:54:16.4639839Z Microsoft.AspNetCore.All 2.1.24 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
2021-10-27T04:54:16.4640553Z Microsoft.AspNetCore.All 2.1.30 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]
2021-10-27T04:54:16.4641691Z Microsoft.AspNetCore.App 2.1.2 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
2021-10-27T04:54:16.4642420Z Microsoft.AspNetCore.App 2.1.5 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
2021-10-27T04:54:16.4643130Z Microsoft.AspNetCore.App 2.1.12 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
2021-10-27T04:54:16.4643823Z Microsoft.AspNetCore.App 2.1.24 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
2021-10-27T04:54:16.4644541Z Microsoft.AspNetCore.App 2.1.30 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
2021-10-27T04:54:16.4645263Z Microsoft.AspNetCore.App 3.1.4 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
2021-10-27T04:54:16.4645958Z Microsoft.AspNetCore.App 3.1.6 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
2021-10-27T04:54:16.4646889Z Microsoft.AspNetCore.App 3.1.20 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
2021-10-27T04:54:16.4647598Z Microsoft.AspNetCore.App 5.0.4 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
2021-10-27T04:54:16.4648286Z Microsoft.AspNetCore.App 5.0.9 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
2021-10-27T04:54:16.4648995Z Microsoft.AspNetCore.App 5.0.11 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]
2021-10-27T04:54:16.4649693Z Microsoft.NETCore.App 2.1.2 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
2021-10-27T04:54:16.4650357Z Microsoft.NETCore.App 2.1.5 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
2021-10-27T04:54:16.4651045Z Microsoft.NETCore.App 2.1.12 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
2021-10-27T04:54:16.4651737Z Microsoft.NETCore.App 2.1.24 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
2021-10-27T04:54:16.4652407Z Microsoft.NETCore.App 2.1.30 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
2021-10-27T04:54:16.4653101Z Microsoft.NETCore.App 3.1.4 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
2021-10-27T04:54:16.4653781Z Microsoft.NETCore.App 3.1.6 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
2021-10-27T04:54:16.4654445Z Microsoft.NETCore.App 3.1.20 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
2021-10-27T04:54:16.4655124Z Microsoft.NETCore.App 5.0.4 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
2021-10-27T04:54:16.4655799Z Microsoft.NETCore.App 5.0.9 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
2021-10-27T04:54:16.4656459Z Microsoft.NETCore.App 5.0.11 [/usr/share/dotnet/shared/Microsoft.NETCore.App]
2021-10-27T04:54:16.4656807Z
在您的管道定義中使用它:
- task: UseDotNet@2
displayName: 'Use .NET Core sdk'
inputs:
version: 6.0.x
includePreviewVersions: true
解釋一下,首先 Visual Studio 只能在 Windows 上運行,所以你不能在 Linux 上安裝 Visual Studio,但這很好,因為你實際上只想要 .NET SDK。 其次,Visual Studio 2022 和 .NET 6 都處於預覽階段。
接下來,Azure DevOps 記錄了在其所有托管代理上預安裝了哪些軟件: https ://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops&tabs =yaml#軟件
如果您點擊Ubuntu 20.04 (latest) 上的 .NET Core SDK鏈接,您會看到它們只預安裝了 .NET SDK 的通用(GA;已發布)版本,而不是預覽版本。 畢竟,大多數構建生產應用程序的客戶不希望冒使用可能存在錯誤和破壞構建的預覽工具的風險。
因此,如果您想要預覽 .NET SDK,您需要在構建步驟中明確安裝它。 UseDotNet 任務就是這樣做的,允許您指定一堆參數,但在這種情況下,最重要的兩個是版本和包含預覽版本。
對於其他方案,例如任何不使用 Azure Pipelines 的人,.NET 團隊也有dotnet-install 腳本,您可以下載並在您的管道中執行。
值得一提的是, .NET 6 將於 11 月 9 日至 11 日舉行發布會,而Visual Studio 2022 將於 11 月 8 日舉行發布會。 我不知道 Azure DevOps 會以多快的速度使用新發布的工具更新他們的 VM 映像,但我想它會在幾天內完成,因此在構建腳本中安裝預覽工具的時間不會太長,除非您想繼續使用預覽工具。 請注意,一旦 .NET 6 SDK 的 6.0.100 正式發布,安裝預覽版 6.0.x 工具的腳本將開始安裝預覽版 6.0.200 預覽版
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.