Я начал разрабатывать веб-приложение с ASP.NET Core 3 и Blazor framework.
В течение нескольких дней/недель я мог создать свое приложение.
С момента анонса предварительного просмотра 5 я не смог собрать свое приложение (с помощью команды dotnet build
).
У меня следующая ошибка:
C:\Users\a\.nuget\packages\microsoft.aspnetcore.blazor.build\3.0.0-preview5-19227-01\targets\Blazor.MonoRuntime.targets(439,5): error MSB3073: The command "dotnet "" -l
-o "D:\Repos\IdeaStudio.Website.Client\obj\Debug\netstandard2.0\linker/"
-x "C:\Users\a\.nuget\packages\microsoft.aspnetcore.blazor.build\3.0.0-preview5-19227-01\targets\BuiltInBclLinkerDescriptor.xml"
-x "D:\Repos\IdeaStudio.Website.Client\obj\Debug\netstandard2.0\linker.descriptor.xml"
-a "C:\Users\a\.nuget\packages\microsoft.aspnetcore.blazor\3.0.0-preview5-19227-01\lib\netstandard2.0\Microsoft.AspNetCore.Blazor.dll"
-a "C:\Users\a\.nuget\packages\microsoft.aspnetcore.components\3.0.0-preview5-19227-01\lib\netstandard2.0\Microsoft.AspNetCore.Components.dll"
-a "C:\Users\a\.nuget\packages\microsoft.aspnetcore.components.browser\3.0.0-preview5-19227-01\lib\netstandard2.0\Microsoft.AspNetCore.Components.Browser.dll"
-a "C:\Users\a\.nuget\packages\microsoft.extensions.dependencyinjection\3.0.0-preview5.19227.9\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.dll"
-a "C:\Users\a\.nuget\packages\microsoft.extensions.dependencyinjection.abstractions\3.0.0-preview5.19227.9\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll"
-a "C:\Users\a\.nuget\packages\microsoft.jsinterop\3.0.0-preview5.19227.9\lib\netstandard2.0\Microsoft.JSInterop.dll"
-a "C:\Users\a\.nuget\packages\mono.webassembly.interop\3.0.0-preview5.19227.9\lib\netstandard2.0\Mono.WebAssembly.Interop.dll"
-a "C:\Users\a\.nuget\packages\system.componentmodel.annotations\4.6.0-preview5.19224.8\lib\netstandard2.0\System.ComponentModel.Annotations.dll"
-a "D:\Repos\IdeaStudio.Website.Client\obj\Debug\netstandard2.0\IdeaStudio.Website.Client.dll"" exited with code 1.
[D:\Repos\IdeaStudio.Website.Client\IdeaStudio.Website.Client.csproj]
Мой csproj
выглядит так:
<Project Sdk = "Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<RestoreAdditionalProjectSources>
https://dotnet.myget.org/F/aspnetcore-dev/api/v3/index.json;
https://dotnet.myget.org/F/blazor-dev/api/v3/index.json;
</RestoreAdditionalProjectSources>
<LangVersion>7.3</LangVersion>
<RazorLangVersion>3.0</RazorLangVersion>
<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<OutputType>Exe</OutputType>
<TargetFrameworks>netstandard2.0</TargetFrameworks>
</PropertyGroup>
<ItemGroup>
<PackageReference Include = "Microsoft.ApplicationInsights.AspNetCore" Version = "2.5.1" />
<PackageReference Include = "Microsoft.AspNetCore.Blazor" Version = "3.0.0-preview5-19227-01" />
<PackageReference Include = "Microsoft.AspNetCore.Blazor.Build" Version = "3.0.0-preview5-19227-01" PrivateAssets = "all" />
<PackageReference Include = "Microsoft.AspNetCore.Blazor.DevServer" Version = "3.0.0-preview5-19227-01" PrivateAssets = "all" />
</ItemGroup>
</Project>
Я не понимал несколько дней, пока...
Сборка дотнета @MindSwipe
<BlazorLinkOnBuild>false</BlazorLinkOnBuild>
к тегу ProertyGroup в csproj.
Maybe when I did the Visual Studio / .NET Core 3 preview 5
dotnet cli
не может создать приложение с csproj, которое содержит свойства <TargetFramework>
и <TargetFrameworks>
...
Проблема Этот на Mono GitHub связана.
По сути, насколько я понимаю, где-то в Mono компоновщик IL дает сбой и выдает это загадочное сообщение об ошибке. Мы можем видеть намеки на это в вашем сообщении об ошибке.
На данный момент michaelccote на GitHub решил проблему, добавив элемент <BlazorLinkOnBuild>false</BlazorLinkOnBuild>
в теги <PropertyGroup>...</PropertyGroup>
файла .csproj.
Какой .csproj-файл? *.Сервер или *.Клиент?
Если вы используете Blazor WebAssembly, ASP.NET Core 3.1, перейдите к yoursolution/yourproject.Client/
и отредактируйте yourproject.Client.csproj
-файл. Добавьте следующую строку:
<Project Sdk = "Microsoft.NET.Sdk.Web">
<PropertyGroup>
[...]
<BlazorWebAssemblyEnableLinking>false</BlazorWebAssemblyEnableLinking>
</PropertyGroup>
[...]
</Project>
Какую команду вы выполнили?