提问人:Selig Drahcir 提问时间:11/15/2023 最后编辑:jessehouwingSelig Drahcir 更新时间:11/15/2023 访问量:365
Azure Pipeline 中的迁移脚本生成器尝试使用 .net 8 失败
Migrations Script Generator in Azure Pipeline fails attempting to use .net 8
问:
我已经在我的 Azure DevOps YML 管道中成功使用了实体框架核心迁移脚本生成器,但今天它中断了以下消息,我很确定该消息与 .net 8 的发布有关。
Installing version undefined of dotnet-ef as global tool.
C:\hostedtoolcache\windows\dotnet\dotnet.exe tool install --global dotnet-ef
C:\Users\VssAdministrator\AppData\Local\Temp\2b213b08-cdae-40fe-ab24-770b2badf581\restore.csproj : error NU1202: Package dotnet-ef 8.0.0 is not compatible with net7.0 (.NETCoreApp,Version=v7.0) / any. Package dotnet-ef 8.0.0 supports: net8.0 (.NETCoreApp,Version=v8.0) / any
The tool package could not be restored.
有谁知道如何强制此工具使用 .net 7?
答:
2赞
jessehouwing
11/15/2023
#1
您是否尝试过显式安装版本 7,它不直接依赖于 .NET 8?dotnet-ef
通过从脚本任务手动安装它:
- pwsh: dotnet tool install --global dotnet-ef --version 7.*
或者,通过将显式版本添加为任务的输入:
- task: efcore-migration-script-generator-task@1
inputs:
eftoolversion: 7.*
或者当然,通过添加来安装 .NET 8:UseDotNet@2
- task: UseDotNet@2
inputs:
version: 8
评论
0赞
Selig Drahcir
11/15/2023
我使用第二个建议解决了这个问题 - 通过将“eftoolversion: 7.0.14”添加到输入列表中。我自己也尝试过类似的东西,但没有正确猜到参数的名称。我很想知道您在哪里找到文档@jessehouwing以便您知道名称是“eftoolversion”。但非常感谢您在任何情况下解决我的问题。
0赞
jessehouwing
11/15/2023
我查看了 git repo 中的源代码
0赞
jessehouwing
11/15/2023
查看和这里:github.com/pekspro/EF-Migrations-Script-Generator-Task/tree/...。我搜索了该命令以查看以编程方式传入了哪些选项。index.ts
task.json
dotnet tool install
0赞
Alex
11/15/2023
我同意这是一个解决方案,但增加了未来必须维护工具版本或 SDK 版本的负担。我也不记得在 7.0 发布时遇到过这个问题(我们仍在构建 6.0 代理)。我已经向 SDK 团队打开了一个 github 问题,以深入了解这个问题:github.com/dotnet/sdk/issues/36904
0赞
jessehouwing
11/15/2023
dotnet-ef 版本 7 基于 .NET 6,因此它与 .NET 6 及更高版本兼容。dotnet-ef 版本 8 基于 .NET 8,因此至少需要 dotnet 8。理想情况下,您正在使用的任务将处理此问题,并发布重大更新,而不是以静默方式更改依赖项。
评论