C# ASP.NET核心项目加载时间
我目前正在开发一个ASP.NET core/MVC core应用程序,但是当我第一次将项目加载到Visual Studio时,加载需要花费很长时间(20分钟) 我不确定是什么原因导致加载时间延长,但这不是Visual Studio本身,因为其他项目加载速度更快,我非常确定这与这个单独的项目有关,因为它过去工作得很好,我在另一台笔记本电脑上试过,它也需要时间 我也尝试过使用/SafeMode开关启动VisualStudio,但没有任何区别 我正在使用Visual Studio 2015 Enterprise 下面是我的project.json的副本,以防有人发现它的潜在问题C# ASP.NET核心项目加载时间,c#,asp.net,visual-studio-2015,asp.net-core-mvc,C#,Asp.net,Visual Studio 2015,Asp.net Core Mvc,我目前正在开发一个ASP.NET core/MVC core应用程序,但是当我第一次将项目加载到Visual Studio时,加载需要花费很长时间(20分钟) 我不确定是什么原因导致加载时间延长,但这不是Visual Studio本身,因为其他项目加载速度更快,我非常确定这与这个单独的项目有关,因为它过去工作得很好,我在另一台笔记本电脑上试过,它也需要时间 我也尝试过使用/SafeMode开关启动VisualStudio,但没有任何区别 我正在使用Visual Studio 2015 Enter
{
"devDependencies": {
"gulp": "3.9.1"
},
"userSecretsId": "SP2017-5731e8a3-a3ec-4a25-bcb5-asdf2432hjk232",
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.1",
"type": "platform"
},
"Microsoft.ApplicationInsights.AspNetCore": "1.0.0",
"Microsoft.AspNetCore.Authentication.Cookies": "1.0.0",
"Microsoft.AspNetCore.Diagnostics": "1.0.0",
"Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.0.0",
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0",
"Microsoft.AspNetCore.Mvc": "1.0.1",
"Microsoft.AspNetCore.Razor.Tools": {
"version": "1.0.0-preview2-final",
"type": "build"
},
"Microsoft.AspNetCore.Routing": "1.0.1",
"Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
"Microsoft.AspNetCore.StaticFiles": "1.0.0",
"MySql.Data.EntityFrameworkCore": "7.0.6-IR31",
"Microsoft.EntityFrameworkCore.SqlServer": "1.0.1",
"Microsoft.EntityFrameworkCore.SqlServer.Design": {
"version": "1.0.1",
"type": "build"
},
"Microsoft.EntityFrameworkCore.Tools": {
"version": "1.0.0-preview2-final",
"type": "build"
},
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
"Microsoft.Extensions.Configuration.Json": "1.0.0",
"Microsoft.Extensions.Configuration.UserSecrets": "1.0.0",
"Microsoft.Extensions.Logging": "1.0.0",
"Microsoft.Extensions.Logging.Console": "1.0.0",
"Microsoft.Extensions.Logging.Debug": "1.0.0",
"Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0",
"Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
"version": "1.0.0-preview2-final",
"type": "build"
},
"Microsoft.VisualStudio.Web.CodeGenerators.Mvc": {
"version": "1.0.0-preview2-final",
"type": "build"
},
"SendGrid.Core": "1.0.0",
"SendGrid.NetCore": "1.0.0-rtm-00002"
},
"tools": {
"BundlerMinifier.Core": "2.0.238",
"Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
"Microsoft.Extensions.SecretManager.Tools": "1.0.0-preview2-final",
"Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
"version": "1.0.0-preview2-final",
"imports": [
"portable-net45+win8"
]
}
},
"frameworks": {
"netcoreapp1.0": {
"imports": [
"dotnet5.6",
"portable-net45+win8"
]
}
},
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
},
"runtimeOptions": {
"configProperties": {
"System.GC.Server": true
}
},
"publishOptions": {
"include": [
"Areas/**/*.cshtml",
"wwwroot",
"**/*.cshtml",
"appsettings.json",
"appsettings.production.json",
"web.config",
"project.json"
]
},
"scripts": {
"prepublish": [ "bower install", "dotnet bundle" ],
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
}
}
编辑格林威治标准时间1月17日12:30:
- 一个新的简单的ASP.NET核心MVC站点打开得又好又快
- 我正在运行Visual Studio 2015更新3
- 我正在Surface Pro 4 i7/16GB/512GB SSD上运行它
- 我已经在安全模式下运行了Visual Studio(devenv.exe/SafeMode,它禁用了包括ReSharper在内的扩展,没有增加加载时间)
- 这个问题发生在我添加SendGrid依赖项之前,因此与此无关
- 我现在已更新到可用的最新工具(dotnet-win-x64.1.1.0.exe)
{
"devDependencies": {
"gulp": "3.9.1"
},
"userSecretsId": "SP2017-5731e8a3-a3ec-4a25-bcb5-asdf2432hjk232",
"dependencies": {
"Microsoft.NETCore.App": "1.1.0",
"Microsoft.AspNetCore.Razor.Tools": {
"version": "1.0.0-preview2-final",
"type": "build"
},
"Pomelo.EntityFrameworkCore.MySql": "1.1.0",
"Microsoft.EntityFrameworkCore.Tools": {
"version": "1.1.0-preview4-final",
"type": "build"
},
"Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
"version": "1.0.0-preview2-final",
"type": "build"
},
"Microsoft.VisualStudio.Web.CodeGenerators.Mvc": {
"version": "1.0.0-preview2-final",
"type": "build"
},
"SendGrid.Core": "1.0.0",
"SendGrid.NetCore": "1.0.0-rtm-00002",
"BundlerMinifier.Core": "2.2.306",
"Microsoft.ApplicationInsights.AspNetCore": "1.0.2",
"Microsoft.AspNetCore.Authentication.Cookies": "1.1.0",
"Microsoft.AspNetCore.Diagnostics": "1.1.0",
"Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore": "1.1.0",
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.1.0",
"Microsoft.AspNetCore.Mvc": "1.1.0",
"Microsoft.AspNetCore.Routing": "1.1.0",
"Microsoft.AspNetCore.Server.IISIntegration": "1.1.0",
"Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
"Microsoft.AspNetCore.StaticFiles": "1.1.0",
"Microsoft.EntityFrameworkCore.SqlServer": "1.1.0",
"Microsoft.EntityFrameworkCore.SqlServer.Design": "1.1.0",
"Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0",
"Microsoft.Extensions.Configuration.Json": "1.1.0",
"Microsoft.Extensions.Configuration.UserSecrets": "1.1.0",
"Microsoft.Extensions.Logging": "1.1.0",
"Microsoft.Extensions.Logging.Console": "1.1.0",
"Microsoft.Extensions.Logging.Debug": "1.1.0",
"Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0",
"Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.1.0"
},
"tools": {
"Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
"Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final",
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
"Microsoft.Extensions.SecretManager.Tools": "1.0.0-preview2-final",
"Microsoft.VisualStudio.Web.CodeGeneration.Tools": {
"version": "1.0.0-preview2-final",
"imports": [
"portable-net45+win8"
]
}
},
"frameworks": {
"netcoreapp1.1": {
"dependencies": {
"Microsoft.NETCore.App": {
"type": "platform",
"version": "1.1.0"
}
},
"imports": "dnxcore50"
}
},
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true
},
"runtimeOptions": {
"configProperties": {
"System.GC.Server": true
}
},
"runtimes": {
"win10-64": {}
},
"publishOptions": {
"include": [
"Areas/**/*.cshtml",
"wwwroot",
"**/*.cshtml",
"appsettings.json",
"appsettings.production.json",
"web.config",
"project.json"
]
},
"scripts": {
"prepublish": [ "bower install", "dotnet bundle" ],
"postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
}
}
我想我可能找到了原因,但没有找到解决办法
我隐约记得在添加了一些bower依赖项之后出现了问题,这可能是原因吗(我已经尝试删除了所有bower依赖项)
我的bower.json文件当前看起来像
{
"name": "asp.net",
"private": true,
"dependencies": {
"bootstrap": "3.3.6",
"jquery": "2.2.0",
"jquery-validation": "1.14.0",
"jquery-validation-unobtrusive": "3.2.6",
"font-awesome": "4.6.1",
"admin-lte": "*",
"material-design-icons": "2.2.3",
"startbootstrap-creative": "3.3.7"
}
}
我刚刚将其添加到新的模板化解决方案中,包还原正在慢慢进行。因此我想知道Visual Studio是否将bower还原称为打开解决方案的一部分?以下是一个可能有效的建议 我建议将.netcore更新到1.1,因为1.0存在许多问题 通过在nuget console安装包Microsoft.NETCore.App中运行此命令 另一个问题可能是您正在加载的依赖项失败或无法正常工作 例如,它可能正在加载您的发送网格,而发送网格非常慢,这可能就是原因
尝试运行一个没有任何依赖项的非常简单的应用程序,看看是否得到相同的结果。如果您有Resharper,请尝试从VS选项菜单挂起它,看看会发生什么。我还体验到,在Resharper处于活动状态时,asp.net核心项目的加载时间更长。使用挂起的Resharper,解决方案加载速度足够快。请尝试以下更新:f这些不是最新的
visual studio
更新为最新的visual studio更新3
Visual Studio 2015工具
更新为当前最新的Visual Studio
Studio 2015工具(预览2)
.NET Core
更新为最新的.NET Core 1.1 SDK
.Net Core SDK
,如下所述
同时也要更新nuget中的所有包。因此事实证明,罪魁祸首实际上是在bower依赖项中,并且是
"material-design-icons": "2.2.3"
从我的bower.json文件中删除该文件(并将其从相应的wwwroot/lib文件夹中删除)后,我的解决方案现在可以在10-15秒内加载(比20分钟快得多)
出于兴趣,我创建了一个新的(非VS/asp.net核心文件夹),运行bower cache clear,然后运行bower.init,然后运行bower install material design icons,只需10分钟即可安装此1个软件包/依赖项
原来这个软件包是43.7MB(磁盘上是81.5MB),它不是我的网速(16ms ping,104.5Mbps下载,6.3Mbps上传)也许这不是一个解决方案,但更像是一个建议,你可以忽略它。但我认为你可能想买一个SSD驱动器。我发现这是一个更好的性能改进方法。你是否尝试在控制台中运行
dotnet build
?@HungCao它已经在SSD驱动器上,在带有i7处理器和16GB ram的surface pro 4配置上。@Kalten它不是他花时间构建,构建在VS和控制台中运行良好且快速(输出显示构建在00:00:09.8916456完成)这实际上是一个文件->打开的解决方案,需要20分钟才能加载。我已经安装了VS 2015 update 3,并且我已经尝试了您提出的升级到最新可用工具的建议,项目仍在进行中。从project.json
中删除工具部分的所有引用,然后尝试删除对ls没有任何区别,删除所有bower依赖项和wwwroot/lib文件夹确实可以使它以更及时的方式启动,但是我不相信这是一个解决方案我已经运行了devenv.exe/SafeMode,它禁用了ReSharper-在打开应用程序时没有提高速度