在我的应用程序运行时,它如何影响Visual Studio的构建属性中启用/禁用序列化程序集生成?
答案 0 :(得分:3)
当您强制生成序列化程序集时,MSBuild将运行SGen
任务。这需要多长时间完全取决于您的机器的功能和生成的组件的大小。第二个是非常粗略的猜测。
但不要猜测,让MSBuild 告诉你需要花多长时间才能知道实数而不是猜测。工具+选项,项目和解决方案,构建和运行。将MSBuild构建输出详细程度设置更改为“详细”。 MSBuild现在显示它执行的每个任务的细分以及花费的时间:
1>Task Performance Summary:
1> 0 ms GetReferenceAssemblyPaths 1 calls
1> 0 ms GenerateBindingRedirects 1 calls
1> 0 ms GetFrameworkPath 1 calls
1> 0 ms ReadLinesFromFile 1 calls
1> 0 ms AssignProjectConfiguration 1 calls
1> 0 ms FindAppConfigFile 1 calls
1> 0 ms MakeDir 1 calls
1> 0 ms AssignCulture 1 calls
1> 1 ms RemoveDuplicates 2 calls
1> 1 ms FindUnderPath 5 calls
1> 1 ms ConvertToAbsolutePath 1 calls
1> 1 ms CallTarget 1 calls
1> 1 ms Delete 2 calls
1> 1 ms AssignTargetPath 6 calls
1> 2 ms Copy 2 calls
1> 2 ms Message 3 calls
1> 10 ms ResolveAssemblyReference 1 calls
1> 83 ms Csc 1 calls
1> 541 ms SGen 1 calls // <=== here!
不要假设我粘贴在这里的数字,请务必在自己的机器上尝试。
尝试编辑后,确定。第一个访问您网站的访问者不会将他的页面加载延迟到那一秒。这取决于您回收网站的频率,但运行sgen主要用于交互式桌面应用程序,对于预计会运行很长时间的服务器而言并不多。