无法在适用于 Windows 的 Mac OS 上构建 Blazor 应用程序

问题描述 投票:0回答:1

我从运行 Windows 11 的 HP 笔记本电脑切换到运行 Sonoma 的 Mac Book。 我的 Balzor 应用程序保存在 Git 存储库中。 在 Windows 笔记本电脑上,我能够毫无错误地构建和运行该应用程序。 在新的 Mac 上,我安装了 dotnet (8.0.400) 并克隆了 git 存储库。 在 Windows 笔记本电脑上运行完全正常的完全相同的代码在 Mac 上会抛出错误。 执行:

dotnet build
抛出以下错误:

[file/path].razor(283,34): error RZ1009: The "@" character must be followed by a ":", "(", or a C# identifier.  If you intended to switch to markup, use an HTML start tag, for example: [[file/path].csproj]
[file/path].razor(137,34): error RZ1009: The "@" character must be followed by a ":", "(", or a C# identifier.  If you intended to switch to markup, use an HTML start tag, for example: [[file/path].csproj]
[file/path].razor(11,20): error CS0116: Member, wie z. B. Felder, Methoden oder Anweisungen können nicht direkt in einem Namespace enthalten sein. [[file/path].csproj]
[file/path].razor(10,27): error CS0116: Member, wie z. B. Felder, Methoden oder Anweisungen können nicht direkt in einem Namespace enthalten sein. [[file/path].csproj]
[file/path].razor(9,31): error CS0116: Member, wie z. B. Felder, Methoden oder Anweisungen können nicht direkt in einem Namespace enthalten sein. [[file/path].csproj]
[file/path].razor(8,26): error CS0116: Member, wie z. B. Felder, Methoden oder Anweisungen können nicht direkt in einem Namespace enthalten sein. [[file/path].csproj]
[file/path].razor(9,20): error CS0116: Member, wie z. B. Felder, Methoden oder Anweisungen können nicht direkt in einem Namespace enthalten sein. [[file/path].csproj]
[file/path].razor(8,27): error CS0116: Member, wie z. B. Felder, Methoden oder Anweisungen können nicht direkt in einem Namespace enthalten sein. [[file/path].csproj]
[file/path].razor(7,31): error CS0116: Member, wie z. B. Felder, Methoden oder Anweisungen können nicht direkt in einem Namespace enthalten sein. [[file/path].csproj]
[file/path].razor(6,26): error CS0116: Member, wie z. B. Felder, Methoden oder Anweisungen können nicht direkt in einem Namespace enthalten sein. [[file/path].csproj]
[file/path].razor(9,20): error CS0102: Der Typ "<invalid-global-code>" enthält bereits eine Definition für "CPNAME". [[file/path].csproj]
[file/path].razor(8,27): error CS0102: Der Typ "<invalid-global-code>" enthält bereits eine Definition für "CPNAME". [[file/path].csproj]
[file/path].razor(7,31): error CS0102: Der Typ "<invalid-global-code>" enthält bereits eine Definition für "CPNAME". [[file/path].csproj]
[file/path].razor(6,26): error CS0102: Der Typ "<invalid-global-code>" enthält bereits eine Definition für "CPNAME". [[file/path].csproj]

(我用 [文件/路径] 替换文件名,用 CPNAME 替换组件名称)

为了缩小问题范围,我使用以下命令在 Mac 上创建了一个新的 Blazor 应用程序:

dotnet new blazor -o BlazorApp
我可以毫无错误地构建并运行这个 Balzor 应用程序。

有什么想法为什么我无法构建我从工作主分支的 git 存储库克隆的项目吗? 预先感谢!

c# asp.net .net macos blazor
1个回答
0
投票

这行代码抛出错误:

return (MarkupString)@$"<a href=""{env}"" target=""_blank"">Link</a>";

@ 符号必须位于 $ 符号之后。

return (MarkupString)$@"<a href=""{env}"" target=""_blank"">Link</a>";

但我仍然不明白为什么第一个在 Windows 上构建时有效,但在使用 MacOS 时却不起作用。 如果有人知道为什么我欢迎你的解释。

© www.soinside.com 2019 - 2024. All rights reserved.