我的C#解决方案需要更长的时间来编译我想要的。
有没有办法对构建过程进行分析,看看花了这么长时间?
答案 0 :(得分:8)
MSBuild中已经内置了一个分析器。工具+选项,项目和解决方案,构建和运行,“MSBuild项目构建输出详细程度”。将其更改为Diagnostic。
do-nothing项目的示例输出:
Project Performance Summary:
400 ms C:\Users\hpassant\AppData\Local\Temporary Projects\WindowsFormsApplication3\WindowsFormsApplication3.csproj 1 calls
400 ms Rebuild 1 calls
Target Performance Summary:
0 ms CreateSatelliteAssemblies 1 calls
0 ms ResolveReferences 1 calls
0 ms _CheckForInvalidConfigurationAndPlatform 1 calls
0 ms _SetTargetFrameworkMonikerAttribute 1 calls
0 ms ResGen 1 calls
0 ms BeforeResGen 1 calls
0 ms GetReferenceAssemblyPaths 1 calls
0 ms AfterCompile 1 calls
0 ms PrepareResources 1 calls
0 ms AfterCompileWinFX 1 calls
0 ms AfterResGen 1 calls
0 ms _ComputeNonExistentFileProperty 1 calls
0 ms BeforeClean 1 calls
0 ms Build 1 calls
0 ms GetTargetPath 1 calls
0 ms GetFrameworkPaths 1 calls
0 ms CompileRdlFiles 1 calls
0 ms AfterMarkupCompilePass1 1 calls
0 ms AfterResolveReferences 1 calls
0 ms BeforeBuild 1 calls
0 ms _CopySourceItemsToOutputDirectory 1 calls
0 ms _AfterCompileWinFXInternal 1 calls
0 ms CleanPublishFolder 1 calls
0 ms Clean 1 calls
0 ms CreateCustomManifestResourceNames 1 calls
0 ms PrepareResourceNames 1 calls
0 ms AfterRebuild 1 calls
0 ms PrepareRdlFiles 1 calls
0 ms CleanReferencedProjects 1 calls
0 ms ComputeIntermediateSatelliteAssemblies 1 calls
0 ms AfterClean 1 calls
0 ms BuildOnlySettings 1 calls
0 ms BeforeCompile 1 calls
0 ms SetWin32ManifestProperties 1 calls
0 ms FileClassification 1 calls
0 ms BeforeResolveReferences 1 calls
0 ms PrepareForRun 1 calls
0 ms DesignTimeMarkupCompilation 1 calls
0 ms CoreBuild 1 calls
0 ms Rebuild 1 calls
0 ms Compile 1 calls
0 ms GenerateTargetFrameworkMonikerAttribute 1 calls
0 ms AfterBuild 1 calls
0 ms _SplitProjectReferencesByFileExistence 1 calls
1 ms SplitResourcesByCulture 1 calls
1 ms GetCopyToOutputDirectoryItems 1 calls
1 ms _CheckForCompileOutputs 1 calls
1 ms _GenerateCompileInputs 1 calls
1 ms DesignTimeXamlMarkupCompilation 1 calls
1 ms PrepareForBuild 1 calls
1 ms _GenerateSatelliteAssemblyInputs 1 calls
1 ms CreateManifestResourceNames 1 calls
1 ms _SetEmbeddedWin32ManifestProperties 1 calls
1 ms BeforeRebuild 1 calls
1 ms ResolveProjectReferences 1 calls
1 ms IncrementalClean 1 calls
2 ms _CleanGetCurrentAndPriorFileWrites 1 calls
5 ms CopyFilesToOutputDirectory 1 calls
6 ms ResolveAssemblyReferences 1 calls
7 ms AssignTargetPaths 1 calls
13 ms CoreResGen 1 calls
54 ms CoreClean 1 calls
298 ms CoreCompile 1 calls
Task Performance Summary:
0 ms GetFrameworkPath 1 calls
0 ms ReadLinesFromFile 2 calls
0 ms ConvertToAbsolutePath 1 calls
0 ms RemoveDuplicates 3 calls
0 ms AssignCulture 1 calls
0 ms CreateCSharpManifestResourceName 1 calls
0 ms MakeDir 2 calls
1 ms FindAppConfigFile 1 calls
1 ms FindUnderPath 7 calls
1 ms Message 3 calls
2 ms WriteLinesToFile 2 calls
4 ms Copy 2 calls
5 ms ResolveAssemblyReference 1 calls
6 ms AssignTargetPath 5 calls
12 ms GenerateResource 1 calls
51 ms Delete 3 calls
298 ms Csc 1 calls
答案 1 :(得分:0)
您可以使用的一个技巧是创建多个构建配置,以便您可以有选择地构建项目,每次只构建更改而不是整个解决方案。