问题
VS甚至需要25秒来编译一个全新的未经编辑的空控制台应用程序项目
我尝试了什么
我最近注意到了这个性能问题,但我不确定它何时开始,所以为了安全起见,我采取了以下措施......
一些重要的观察
更新
我通过电子邮件与一些微软人员谈话,他们已经缩小到VS用于在构建过程中以某种方式进行“共享资源”的“roslyn编译器服务器”(我不完全了解完整的详情我自己)
通过使用“开发人员命令提示符”,你可以弄清楚是否有同样的问题......
...第一行设置一个环境变量告诉roslyn将其活动记录到文件中,这对我来说是产生的......
--- PID=8144 TID=9 Ticks=17865781: CommandLine = ' /noconfig'
--- PID=8144 TID=9 Ticks=17865781: BuildResponseFile = '/nowarn:1701,1702 /nostdlib+ /platform:anycpu32bitpreferred /errorreport:prompt /warn:4 /define:DEBUG;TRACE /highentropyva+ /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\Microsoft.CSharp.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\mscorlib.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Core.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Data.DataSetExtensions.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Data.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Net.Http.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Xml.dll" /reference:"C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5.2\System.Xml.Linq.dll" /debug+ /debug:full /filealign:512 /optimize- /out:obj\Debug\ConsoleApplication1.exe /ruleset:"C:\Program Files (x86)\Microsoft Visual Studio 14.0\Team Tools\Static Analysis Tools\\Rule Sets\MinimumRecommendedRules.ruleset" /subsystemversion:6.00 /target:exe /utf8output Program.cs Properties\AssemblyInfo.cs "C:\Users\PaulW\AppData\Local\Temp\.NETFramework,Version=v4.5.2.AssemblyAttributes.cs"'
--- PID=8144 TID=9 Ticks=17865781: Attempting to create process 'C:\Program Files (x86)\MSBuild\14.0\bin\VBCSCompiler.exe'
--- PID=8144 TID=9 Ticks=17865781: Successfully created process with process id 2080
--- PID=8144 TID=9 Ticks=17865781: Attempt to open named pipe 'PaulW.True.GE6kSCQEbMXsysJ19S0qExhvU5zqX2Bc34kg0RSsgmc'
--- PID=8144 TID=9 Ticks=17865781: Attempt to connect named pipe 'PaulW.True.GE6kSCQEbMXsysJ19S0qExhvU5zqX2Bc34kg0RSsgmc'
--- PID=8144 TID=9 Ticks=17890781: Connecting to server timed out after 20000 ms
..微软注意到最后一行是关键所在,似乎VS中的“编译服务器”正在做一些不应该做的事情,因此没有正确响应构建过程请求导致这种延迟。
答案 0 :(得分:0)
一般来说,上面的问题是因为roslyn日志中的超时而发生的。
发生超时可能是因为编译器服务由于某种原因而死亡,所以,如果你在运行时打开文件“C:\ Program Files(x86)\ MSBuild \ 14.0 \ bin \ VBCSCompiler.exe”,你可能会得到一个例外,阅读它会告诉你更多关于问题的确切原因的信息。
感谢Jared Parsons @ Microsoft关于此问题的关键信息:)