我最近从 Umbraco 10.x (.NET 6 Core) 升级到 13.x (.NET 8 Core)。
从那时起,构建该项目的管道就没有失败或抱怨,但我怀疑它仍在 .NET 6 中构建,因为它没有运行。我还可以在本地发布后将以下文件与管道的输出进行比较。
myproj.deps.json 有
{ "runtimeTarget": { "name": ".NETCoreApp,Version=v6.0" ...
myproj.runtimeconfig.json 有
{ "runtimeOptions" : { "tfm": "net6.0" ...
本地构建/发布那些有 8.0 的。
尝试类似帖子中的解决方案,我添加了“使用 .NET Core”的任务步骤
steps:
- task: UseDotNet@2
displayName: 'Use .NET Core sdk 8.x'
inputs:
version: 8.x
我什至添加了一个 dotnet 信息来证明 8 在那里:
steps:
- task: DotNetCoreCLI@2
displayName: 'dotnet info'
inputs:
command: custom
custom: '--info'
但是当进入构建步骤时,我收到以下错误:
steps:
- task: DotNetCoreCLI@2
displayName: Build
inputs:
projects: '**/myproj.csproj'
arguments: '--configuration $(BuildConfiguration) --no-restore --framework net8.0'
##[错误]C:\hostedtoolcache\windows\dotnet\sdk\8.0.204\Sdks\Microsoft.NET.Sdk argets\Microsoft.PackageDependencyResolution.targets(266,5):错误NETSDK1005:资产文件'D: \8\s\Dev\Main\myproj\obj\project.assets.json' 没有“net8.0”的目标。确保恢复已运行并且您已将“net8.0”包含在项目的 TargetFrameworks 中。
有或没有
--framework net8.0
,结果相同。
即使我没有专门做 NuGet,我也尝试添加以下内容而不做任何更改。
steps:
- task: NuGetToolInstaller@1
displayName: 'Use NuGet 5.8'
inputs:
versionSpec: 5.8
我还尝试将主机从 windows-latest 更改为 windows-2022。没有变化。
我什至尝试将项目文件中的以下项目从
TargetFramework
更改为 TargetFrameworks
。
<TargetFramework>net8.0</TargetFramework>
任何想法或帮助将不胜感激。
排除管道的前端部分,我们成功构建了 Umbraco 13(以及 .net 8)
pool:
vmImage: 'windows-latest'
demands:
- msbuild
- visualstudio
trigger:
- main
variables:
solution: '**/*.sln'
buildPlatform: 'Any CPU'
buildConfiguration: 'Release'
NUGET_PACKAGES: $(Pipeline.Workspace)/.nuget/packages
steps:
- task: UseDotNet@2
displayName: Setup .Net 8
inputs:
packageType: 'sdk'
version: '8.0.x'
- task: DotNetCoreCLI@2
displayName: Publish Solution
inputs:
command: publish
publishWebProjects: True
arguments: '--configuration $(buildConfiguration) --output $(Build.ArtifactStagingDirectory)'
zipAfterPublish: True
- task: PublishBuildArtifacts@1
displayName: Publish Artifact
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: 'prod-drop'
publishLocation: 'Container'