【问题标题】:Error Upgrading Blazor from 3.1 to 5.0 "does not have a property matching the name 'PreferExactMatches'"将 Blazor 从 3.1 升级到 5.0 时出错“没有与名称‘PreferExactMatches’匹配的属性”
【发布时间】:2020-12-01 06:53:20
【问题描述】:

根据迁移文档here,建议添加此属性PreferExactMatches

当我这样做时,我得到了这个错误

InvalidOperationException: Object of type 'Microsoft.AspNetCore.Components.Routing.Router' does not have a property matching the name 'PreferExactMatches'.

即使API explorer 表示该属性不存在。我在这里有什么遗漏吗?请建议。 现在我正在跳过它和它的工作。

【问题讨论】:

  • 重建解决方案
  • 我确实按此顺序尝试了dotnet clean dotnet nuget locals --clear all dotnet restore dotnet build
  • 这是我得到的运行时错误。
  • 我猜 PreferExactMatches 已从路由器标签中删除

标签: c# .net-core blazor


【解决方案1】:

MS 迁移文档在补丁发布之前。 (文件同时被编辑)。 PreferExactMatches 属性尚未发布,但将在未来几天发布。

https://github.com/dotnet/AspNetCore.Docs/issues/20838

【讨论】:

  • 这就解释了! ? 谢谢。
  • 更新:已更新并发布。将客户端和服务器上的运行时更新到 5.0.1 或更高版本。
  • 已更新 (5.0.200-preview.20601.7) 仍然给我这个错误。
【解决方案2】:

【讨论】:

  • 我在 sdk 5.0.1 bash dotnet --info .NET SDK (reflecting any global.json): Version: 5.0.100 Commit: 5044b93829 Runtime Environment: OS Name: ubuntu OS Version: 18.04 OS Platform: Linux RID: ubuntu.18.04-x64 Base Path: /usr/share/dotnet/sdk/5.0.100/ Host (useful for support): Version: 5.0.0 Commit: cf258a14b7 .NET SDKs installed: 3.1.301 [/usr/share/dotnet/sdk] 5.0.100 [/usr/share/dotnet/sdk] 缺少其他东西
  • 当我遇到这样的问题时,我会关闭项目,从解决方案中的所有项目中手动删除 obj 和 bin 文件夹,然后再次打开项目并重建 70% 的时间,这可以解决我无法解决的问题解释一下。
【解决方案3】:

PreferExactMatches="@true"

@!这是微软的错字。

【讨论】:

  • 嘿@robkuipers,欢迎来到SO。您能否进一步扩展答案并添加您如何认为这是一个错字(您自己的经验或 Github 中的错误报告等)干杯。
  • 这是正确的语法。将其更改为字符串会给您带来运行时错误。
  • 但错误指出:“...没有与名称 'PreferExactMatches' 匹配的属性”。所以这个改变对这个问题没有任何作用。
  • 实际上两者都对我有用。我有 Microsoft.AspNetCore.Components.Authorization 5.0.2
【解决方案4】:

对于部署到 Azure Web 应用程序的任何人,我相信我已经找到了问题所在。

查看 yannik 的帖子:

MS 迁移文档在补丁发布之前。 (这 文件在此期间进行编辑)。属性 PreferExactMatches 尚未发布,但将在未来几天发布。

现在请注意,在撰写本文时 (08Jan20) azure 仍然只提供 .net 5 的预览版。

因此,一旦 azure Web 应用支持最新的 .net5 (5.0.1),这个问题应该会得到解决。

一些替代方案:

  • 使用 Docker 容器选项部署您的 Web 应用程序(参见上面的 img)
  • 发布一个独立的应用程序。

参考资料:

【讨论】:

    猜你喜欢
    • 2015-08-30
    • 1970-01-01
    • 2014-04-24
    • 2020-10-29
    • 1970-01-01
    • 1970-01-01
    • 2015-09-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多