.Net 5 - Azure Pipeline - 找不到指定的 SDK 'Microsoft.NET.Sdk.BlazorWebAssembly'
.Net 5 - Azure Pipeline - The SDK 'Microsoft.NET.Sdk.BlazorWebAssembly' specified could not be found
我刚刚将 Blazor Web Assembly 解决方案升级到 .Net 5,但我在 Azure Pipeline 中的 NuGet 命令步骤中收到以下错误:
error MSB4236: The SDK 'Microsoft.NET.Sdk.BlazorWebAssembly' specified could not be found
azure-pipelines.yml 文件如下:
trigger:
- develop
pool:
vmImage: 'windows-latest'
variables:
solution: 'SomeProjectNew.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
steps:
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)'
- task: VSBuild@1
inputs:
solution: 'SomeProjectNew.sln'
msbuildArgs: '/p:DeployOnBuild=true /p:PublishProfile=SomeProject-demo /p:Password=$(SomeProjectDemoWebDeployPassword)'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
我是否遗漏了管道配置中的一些步骤以使其与 .Net 5 和新的 blazor sdk 一起工作?
由于您使用的是 .Net 5,因此请尝试将 Use .net core task
和 Dotnet core task
与恢复命令一起使用,而不是使用 Nuget 命令。
- task: UseDotNet@2
displayName: 'Use .NET Core sdk 5.0.100-rc.1.20452.10'
inputs:
packageType: 'sdk'
version: '5.0.100'
includePreviewVersions: true
- task: DotNetCoreCLI@2
displayName: 'dotnet restore'
inputs:
command: restore
projects: '**/*.csproj'
强烈建议针对 .net core
的项目使用 dotnet restore
和 dotnet build
任务。见 this statement from Nuget task:
也可以在这里查看类似的问题:
以防万一其他人在寻找完整的 yml 文件,这是我最终得到的:
trigger:
- develop
pool:
vmImage: 'windows-latest'
steps:
- task: UseDotNet@2
displayName: 'Install .NET 5 SDK'
inputs:
packageType: 'sdk'
version: '5.x'
- task: DotNetCoreCLI@2
displayName: 'Restore Nuget Packages'
inputs:
command: 'restore'
projects: 'SomeSolution.sln'
feedsToUse: 'config'
nugetConfigPath: '.nuget/NuGet.config'
- task: DotNetCoreCLI@2
displayName: 'Publish to Azure'
inputs:
command: 'publish'
publishWebProjects: false
projects: 'SomeProjectFolder/SomeWebProject.csproj'
arguments: '/p:PublishProfile=profile-name /p:Password=$(WebDeployPassword)'
zipAfterPublish: false
modifyOutputPath: false
我的发布配置文件使用网络部署将应用部署到 Azure 应用服务。这种方法依赖于源代码控制中的“.nuget/NuGet.config”文件,以及在管道 (Secret Variables).
上定义的秘密变量 $(WebDeployPassword)
我刚刚将 Blazor Web Assembly 解决方案升级到 .Net 5,但我在 Azure Pipeline 中的 NuGet 命令步骤中收到以下错误:
error MSB4236: The SDK 'Microsoft.NET.Sdk.BlazorWebAssembly' specified could not be found
azure-pipelines.yml 文件如下:
trigger:
- develop
pool:
vmImage: 'windows-latest'
variables:
solution: 'SomeProjectNew.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
steps:
- task: NuGetToolInstaller@1
- task: NuGetCommand@2
inputs:
restoreSolution: '$(solution)'
- task: VSBuild@1
inputs:
solution: 'SomeProjectNew.sln'
msbuildArgs: '/p:DeployOnBuild=true /p:PublishProfile=SomeProject-demo /p:Password=$(SomeProjectDemoWebDeployPassword)'
platform: '$(buildPlatform)'
configuration: '$(buildConfiguration)'
我是否遗漏了管道配置中的一些步骤以使其与 .Net 5 和新的 blazor sdk 一起工作?
由于您使用的是 .Net 5,因此请尝试将 Use .net core task
和 Dotnet core task
与恢复命令一起使用,而不是使用 Nuget 命令。
- task: UseDotNet@2
displayName: 'Use .NET Core sdk 5.0.100-rc.1.20452.10'
inputs:
packageType: 'sdk'
version: '5.0.100'
includePreviewVersions: true
- task: DotNetCoreCLI@2
displayName: 'dotnet restore'
inputs:
command: restore
projects: '**/*.csproj'
强烈建议针对 .net core
的项目使用 dotnet restore
和 dotnet build
任务。见 this statement from Nuget task:
也可以在这里查看类似的问题:
以防万一其他人在寻找完整的 yml 文件,这是我最终得到的:
trigger:
- develop
pool:
vmImage: 'windows-latest'
steps:
- task: UseDotNet@2
displayName: 'Install .NET 5 SDK'
inputs:
packageType: 'sdk'
version: '5.x'
- task: DotNetCoreCLI@2
displayName: 'Restore Nuget Packages'
inputs:
command: 'restore'
projects: 'SomeSolution.sln'
feedsToUse: 'config'
nugetConfigPath: '.nuget/NuGet.config'
- task: DotNetCoreCLI@2
displayName: 'Publish to Azure'
inputs:
command: 'publish'
publishWebProjects: false
projects: 'SomeProjectFolder/SomeWebProject.csproj'
arguments: '/p:PublishProfile=profile-name /p:Password=$(WebDeployPassword)'
zipAfterPublish: false
modifyOutputPath: false
我的发布配置文件使用网络部署将应用部署到 Azure 应用服务。这种方法依赖于源代码控制中的“.nuget/NuGet.config”文件,以及在管道 (Secret Variables).
上定义的秘密变量 $(WebDeployPassword)