.net core 缩短Net Core 3.1 Blazor服务器端Visual Studio 2019的开发构建时间

.net core 缩短Net Core 3.1 Blazor服务器端Visual Studio 2019的开发构建时间,.net-core,build,blazor,server-side,.net Core,Build,Blazor,Server Side,我们已经用Blazor服务器端将一个项目(经过4个月的工作)从NEt Core 2.2迁移到NEt Core 3.1,我们在Visual Studio中的开发构建时间有很大的不同: Net Core 2.2 Visual Studio 2019:15秒(可接受) Net Core 3.1与Blazor服务器端Visual Studio 2019:1分钟。(不可接受) Visual studio Enterprise最近一次更新时,我们已将.NET核心迁移到:3.1.7 计算机配置:Azure

我们已经用Blazor服务器端将一个项目(经过4个月的工作)从NEt Core 2.2迁移到NEt Core 3.1,我们在Visual Studio中的开发构建时间有很大的不同:

  • Net Core 2.2 Visual Studio 2019:15秒(可接受)
  • Net Core 3.1与Blazor服务器端Visual Studio 2019:1分钟。(不可接受)
Visual studio Enterprise最近一次更新时,我们已将.NET核心迁移到:3.1.7

计算机配置:Azure服务器、高级SSD、8 CPU、2.7 GHZ

有没有办法只为developermnt提高构建时间?只需更改一个小代码,然后等待1分钟即可看到结果,这是非常耗时的

正如我们在互联网上看到的那样,我们已经尝试了很多设置。项目代码为:

<Project Sdk="Microsoft.NET.Sdk.Web">   
<PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <UserSecretsId>....</UserSecretsId>
    <ServerGarbageCollection>false</ServerGarbageCollection>
    <RazorCompileOnBuild>false</RazorCompileOnBuild>
    <RazorCompileOnPublish>true</RazorCompileOnPublish>
    <RunAnalyzersDuringBuild>false</RunAnalyzersDuringBuild>
    <BlazorLinkOnBuild Condition="'$(Configuration)'!='Release'">false</BlazorLinkOnBuild>
    <RunCodeAnalysis>false</RunCodeAnalysis>
    <UseRazorBuildServer>false</UseRazorBuildServer>
    <DisableImplicitAspNetCoreAnalyzers>true</DisableImplicitAspNetCoreAnalyzers>
</PropertyGroup>
<ItemGroup>
    <PackageReference Include="BlazorDateRangePicker" Version="2.9.0" />
    <PackageReference Include="Blazored.LocalStorage" Version="3.0.0" />
    <PackageReference Include="Blazored.SessionStorage" Version="1.0.12" />
    <PackageReference Include="BlazorInputFile" Version="0.2.0" />
    <PackageReference Include="ChartJs.Blazor" Version="1.1.0" />
    <PackageReference Include="EPPlus" Version="5.2.1" />
    <PackageReference Include="Microsoft.AspNetCore.Authentication.Google" Version="3.1.7" />
    <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.1.7" />
    <PackageReference Include="Microsoft.AspNetCore.Blazor.HttpClient" Version="3.2.0-preview3.20168.3" />
    <PackageReference Include="Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore" Version="3.1.7" />
    <PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.2.0" />
    <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="3.1.7" />
    <PackageReference Include="Microsoft.AspNetCore.Identity.UI" Version="3.1.7" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="3.1.7" />
    <PackageReference Include="Microsoft.AspNetCore.SignalR.Client" Version="3.1.7" />
    <PackageReference Include="Microsoft.AspNetCore.WebUtilities" Version="2.2.0" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.7" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.7"/>
    <PackageReference Include="Microsoft.AspNetCore.Authentication.Facebook" Version="3.1.7" />
    <PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="3.1.7" />
    <PackageReference Include="Hangfire" Version="1.7.12" />
    <PackageReference Include="MailKit" Version="2.8.0" />
    <PackageReference Include="SixLabors.ImageSharp" Version="1.0.0" />
</ItemGroup>

您是否尝试记录构建以查看花费了这么长时间的原因?你只是在建还是重建,因为重建很昂贵。谢谢你的回复。当我们在.razor文件中更改某些内容时,我们单击save和Cntrl-F5,我不知道其他编译方法。我已经编辑了这个问题,并从日志中添加了一些部分。老实说,我不知道去哪里找。似乎RazorComponentDeclaration(19849 ms)、CoreCompile(21464 ms CoreCompile)、RazorGenerate(8746 ms RazorGenerate)等等。我的第一个建议是将组件拆分为Razor类库——分离得越多越好(在某种程度上),这样增量构建就需要编译得越少。这是一个特别大的解决方案吗?您是否正在构建快速SSD?已禁用源文件夹上的防病毒扫描?如果您使用Ctrl-F5运行,则可以尝试在更改后按Ctrl+b,而不是按Ctrl-F5-它应该只生成并重新启动-对我来说,这比已运行的Ctrl-F5更快解决方案只有一个项目,其中包含所有文件。现在我已经拆分成了更多的项目:表示层(Blazor和一些助手)、共享库(一些共享助手)、数据访问库(迁移和DB上下文)、业务逻辑服务(服务和数据库查询)和it现在只需20秒(如您所说使用Ctrl-B)。20秒的差异来自迁移,因为在此期间有:663个文件。是的,我使用我们在更多服务器和计算机上测试过的SSD。当前计算机位于Azure F8s v2服务器16 GB、8个CPU中。没有防病毒软件。