Невозможно создать приложение Blazor в Mac OS, которое работает в Windows

Я перешел с ноутбука HP под управлением Windows 11 на Mac Book под управлением Sonoma. Мое приложение 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)

Чтобы сузить проблему, я создал новое приложение Blazor на Mac с помощью следующей команды: dotnet new blazor -o BlazorApp Я могу создать и запустить это приложение Balzor без ошибок.

Есть идеи, почему я не могу собрать проект, который я клонировал из репозитория git из рабочей основной ветки? Заранее спасибо!

Я предлагаю вам попробовать использовать dotnet clean dotnet restore dotnet build, чтобы увидеть, исчезнет ли эта ошибка или нет.

Brando Zhang 20.08.2024 08:21

Я попробовал это, но все еще не работает. Но теперь я понял, что если я удалю два файла Razor в папке Pages, я смогу создать приложение Blazor. Но это не особо помогает. Эти два файла ни в чем не особенные. Всего два пажа, как и все остальные. И да, эти страницы прекрасно работают на ПК с Windows.

m4_lol 20.08.2024 12:27

Какие две страницы? Не могли бы вы поделиться этим?

Brando Zhang 21.08.2024 03:16

Только что опубликовал решение. Спасибо за вашу помощь!

m4_lol 21.08.2024 17:21
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
4
50
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ошибка была выдана в этой строке кода:

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

Знак @ должен стоять после знака $.

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

Но я до сих пор не понимаю, почему первый работает при сборке под Windows, а не при использовании MacOS. Если кто-нибудь знает, почему я буду рад вашему объяснению.

Другие вопросы по теме