Я перешел с ноутбука 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 из рабочей основной ветки? Заранее спасибо!
Я попробовал это, но все еще не работает. Но теперь я понял, что если я удалю два файла Razor в папке Pages, я смогу создать приложение Blazor. Но это не особо помогает. Эти два файла ни в чем не особенные. Всего два пажа, как и все остальные. И да, эти страницы прекрасно работают на ПК с Windows.
Какие две страницы? Не могли бы вы поделиться этим?
Только что опубликовал решение. Спасибо за вашу помощь!





Ошибка была выдана в этой строке кода:
return (MarkupString)@$"<a href = ""{env}"" target = ""_blank"">Link</a>";
Знак @ должен стоять после знака $.
return (MarkupString)$@"<a href = ""{env}"" target = ""_blank"">Link</a>";
Но я до сих пор не понимаю, почему первый работает при сборке под Windows, а не при использовании MacOS. Если кто-нибудь знает, почему я буду рад вашему объяснению.
Я предлагаю вам попробовать использовать
dotnet clean dotnet restore dotnet build, чтобы увидеть, исчезнет ли эта ошибка или нет.