2013-06-27 12 views
5

Je travaille sur un projet Visual Studio MVC-4. Il faut environ 2 minutes pour construire la solution, ce qui n'a aucun sens. C'est une petite solution avec 5 projets, avec peu (moins de quelques centaines) de fichiers dans chaque projet. Pour comparer, nous avons un projet qui est 10-15 fois la taille de ce projet (formulaires Web), qui se construit en moins de 3 secondes sur mon ordinateur. J'ai entendu dire que nous avons migré de MVC2 à MVC4, et l'équipe se souvient que la solution était beaucoup plus rapide avant la migration, mais ils ne peuvent pas s'en souvenir exactement.L'application MVC est extrêmement lente à générer

Ce n'est pas seulement sur mon ordinateur, mais le reste des ordinateurs de l'équipe. Je suis assez sûr que c'est dans le fichier de solution en quelque sorte.

Nous avons seulement 1 événement post-construction, et il n'a aucun effet pour l'enlever.

Des idées sur ce qu'il faut faire?

Ce que j'ai essayé

Symboles:

Je lis un post ici sur le SO, sur la définition des symboles pour exécuter localement au lieu de serveur. Je l'ai fait:

enter image description here

activez l'option "juste mon code" Assurez-vous que mon code est débogués:

enter image description here

Suppression des dossiers temporaires

J'ai supprimé tous les différents dossiers temporaires sur mon ordinateur.

fichier Solution

Microsoft Visual Studio Solution File, Format Version 12.00 
# Visual Studio 2012 
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Data", "Data", "{C337490A-F7A8-4800-9BD3-668F5231AE2D}" 
EndProject 
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Web", "Web", "{58E3725E-75D2-4AB0-A693-D482152A28E5}" 
EndProject 
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Business", "Business", "{8999D8ED-77FD-42F4-A11A-F6F3B4224A41}" 
EndProject 
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{C1BC5D04-B71F-4E66-9C2F-352ED8A0AF84}" 
    ProjectSection(SolutionItems) = preProject 
     Saxo.Application.Publish.build = Saxo.Application.Publish.build 
    EndProjectSection 
EndProject 
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Database", "Database", "{8F63871C-600E-49E5-9858-D3023485CD06}" 
EndProject 
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Changescripts", "Changescripts", "{B3F72D6C-35EF-4D82-ACB9-5DCAE8F0BCA1}" 
    ProjectSection(SolutionItems) = preProject 
     30042013-DescriptionNotNull.sql = 30042013-DescriptionNotNull.sql 
     AlterContentTextsAddAllowHtml.txt = AlterContentTextsAddAllowHtml.txt 
     AlterInvoiceAccountsAddVismaSupplierId.sql = AlterInvoiceAccountsAddVismaSupplierId.sql 
     AlterProjectsAddCategorySelfPublisher.sql = AlterProjectsAddCategorySelfPublisher.sql 
    EndProjectSection 
EndProject 
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SOMENAME", "SOMENAME", "{903F385F-C309-4189-BE1C-1598BEF9FBE6}" 
EndProject 
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SOMENAME", "SOMENAME", "{797DCD60-C9C4-4AB4-98FE-2CBB02AA4A85}" 
EndProject 
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SOMENAME", "SOMENAME", "{BA8847A7-5EFB-4E1B-A689-4BBC4B6183D8}" 
EndProject 
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SOMENAME", "SOMENAME", "{EA172A15-6AE4-4358-8DB9-B75F6CC20458}" 
EndProject 
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{5E4C1C3C-AB57-49E6-8C7B-1E69CD3FBF67}" 
EndProject 
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SOMENAME", "SOMENAME", "{97B74D41-8B99-4782-9B64-60BA180ED667}" 
EndProject 
Global 
    GlobalSection(SolutionConfigurationPlatforms) = preSolution 
     Debug|Any CPU = Debug|Any CPU 
     Debug|Mixed Platforms = Debug|Mixed Platforms 
     Debug|x86 = Debug|x86 
     Release|Any CPU = Release|Any CPU 
     Release|Mixed Platforms = Release|Mixed Platforms 
     Release|x86 = Release|x86 
    EndGlobalSection 
    GlobalSection(ProjectConfigurationPlatforms) = postSolution 
     {903F385F-C309-4189-BE1C-1598BEF9FBE6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 
     {903F385F-C309-4189-BE1C-1598BEF9FBE6}.Debug|Any CPU.Build.0 = Debug|Any CPU 
     {903F385F-C309-4189-BE1C-1598BEF9FBE6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU 
     {903F385F-C309-4189-BE1C-1598BEF9FBE6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU 
     {903F385F-C309-4189-BE1C-1598BEF9FBE6}.Debug|x86.ActiveCfg = Debug|Any CPU 
     {903F385F-C309-4189-BE1C-1598BEF9FBE6}.Release|Any CPU.ActiveCfg = Release|Any CPU 
     {903F385F-C309-4189-BE1C-1598BEF9FBE6}.Release|Any CPU.Build.0 = Release|Any CPU 
     {903F385F-C309-4189-BE1C-1598BEF9FBE6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU 
     {903F385F-C309-4189-BE1C-1598BEF9FBE6}.Release|Mixed Platforms.Build.0 = Release|Any CPU 
     {903F385F-C309-4189-BE1C-1598BEF9FBE6}.Release|x86.ActiveCfg = Release|Any CPU 
     {797DCD60-C9C4-4AB4-98FE-2CBB02AA4A85}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 
     {797DCD60-C9C4-4AB4-98FE-2CBB02AA4A85}.Debug|Any CPU.Build.0 = Debug|Any CPU 
     {797DCD60-C9C4-4AB4-98FE-2CBB02AA4A85}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU 
     {797DCD60-C9C4-4AB4-98FE-2CBB02AA4A85}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU 
     {797DCD60-C9C4-4AB4-98FE-2CBB02AA4A85}.Debug|x86.ActiveCfg = Debug|Any CPU 
     {797DCD60-C9C4-4AB4-98FE-2CBB02AA4A85}.Release|Any CPU.ActiveCfg = Release|Any CPU 
     {797DCD60-C9C4-4AB4-98FE-2CBB02AA4A85}.Release|Any CPU.Build.0 = Release|Any CPU 
     {797DCD60-C9C4-4AB4-98FE-2CBB02AA4A85}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU 
     {797DCD60-C9C4-4AB4-98FE-2CBB02AA4A85}.Release|Mixed Platforms.Build.0 = Release|Any CPU 
     {797DCD60-C9C4-4AB4-98FE-2CBB02AA4A85}.Release|x86.ActiveCfg = Release|Any CPU 
     {BA8847A7-5EFB-4E1B-A689-4BBC4B6183D8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 
     {BA8847A7-5EFB-4E1B-A689-4BBC4B6183D8}.Debug|Any CPU.Build.0 = Debug|Any CPU 
     {BA8847A7-5EFB-4E1B-A689-4BBC4B6183D8}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU 
     {BA8847A7-5EFB-4E1B-A689-4BBC4B6183D8}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU 
     {BA8847A7-5EFB-4E1B-A689-4BBC4B6183D8}.Debug|x86.ActiveCfg = Debug|Any CPU 
     {BA8847A7-5EFB-4E1B-A689-4BBC4B6183D8}.Release|Any CPU.ActiveCfg = Release|Any CPU 
     {BA8847A7-5EFB-4E1B-A689-4BBC4B6183D8}.Release|Any CPU.Build.0 = Release|Any CPU 
     {BA8847A7-5EFB-4E1B-A689-4BBC4B6183D8}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU 
     {BA8847A7-5EFB-4E1B-A689-4BBC4B6183D8}.Release|Mixed Platforms.Build.0 = Release|Any CPU 
     {BA8847A7-5EFB-4E1B-A689-4BBC4B6183D8}.Release|x86.ActiveCfg = Release|Any CPU 
     {EA172A15-6AE4-4358-8DB9-B75F6CC20458}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 
     {EA172A15-6AE4-4358-8DB9-B75F6CC20458}.Debug|Any CPU.Build.0 = Debug|Any CPU 
     {EA172A15-6AE4-4358-8DB9-B75F6CC20458}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU 
     {EA172A15-6AE4-4358-8DB9-B75F6CC20458}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU 
     {EA172A15-6AE4-4358-8DB9-B75F6CC20458}.Debug|x86.ActiveCfg = Debug|Any CPU 
     {EA172A15-6AE4-4358-8DB9-B75F6CC20458}.Release|Any CPU.ActiveCfg = Release|Any CPU 
     {EA172A15-6AE4-4358-8DB9-B75F6CC20458}.Release|Any CPU.Build.0 = Release|Any CPU 
     {EA172A15-6AE4-4358-8DB9-B75F6CC20458}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU 
     {EA172A15-6AE4-4358-8DB9-B75F6CC20458}.Release|Mixed Platforms.Build.0 = Release|Any CPU 
     {EA172A15-6AE4-4358-8DB9-B75F6CC20458}.Release|x86.ActiveCfg = Release|Any CPU 
     {97B74D41-8B99-4782-9B64-60BA180ED667}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 
     {97B74D41-8B99-4782-9B64-60BA180ED667}.Debug|Any CPU.Build.0 = Debug|Any CPU 
     {97B74D41-8B99-4782-9B64-60BA180ED667}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU 
     {97B74D41-8B99-4782-9B64-60BA180ED667}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU 
     {97B74D41-8B99-4782-9B64-60BA180ED667}.Debug|x86.ActiveCfg = Debug|Any CPU 
     {97B74D41-8B99-4782-9B64-60BA180ED667}.Release|Any CPU.ActiveCfg = Release|Any CPU 
     {97B74D41-8B99-4782-9B64-60BA180ED667}.Release|Any CPU.Build.0 = Release|Any CPU 
     {97B74D41-8B99-4782-9B64-60BA180ED667}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU 
     {97B74D41-8B99-4782-9B64-60BA180ED667}.Release|Mixed Platforms.Build.0 = Release|Any CPU 
     {97B74D41-8B99-4782-9B64-60BA180ED667}.Release|x86.ActiveCfg = Release|Any CPU 
    EndGlobalSection 
    GlobalSection(SolutionProperties) = preSolution 
     HideSolutionNode = FALSE 
    EndGlobalSection 
    GlobalSection(NestedProjects) = preSolution 
     {BA8847A7-5EFB-4E1B-A689-4BBC4B6183D8} = {C337490A-F7A8-4800-9BD3-668F5231AE2D} 
     {903F385F-C309-4189-BE1C-1598BEF9FBE6} = {58E3725E-75D2-4AB0-A693-D482152A28E5} 
     {797DCD60-C9C4-4AB4-98FE-2CBB02AA4A85} = {8999D8ED-77FD-42F4-A11A-F6F3B4224A41} 
     {EA172A15-6AE4-4358-8DB9-B75F6CC20458} = {8999D8ED-77FD-42F4-A11A-F6F3B4224A41} 
     {B3F72D6C-35EF-4D82-ACB9-5DCAE8F0BCA1} = {8F63871C-600E-49E5-9858-D3023485CD06} 
     {97B74D41-8B99-4782-9B64-60BA180ED667} = {5E4C1C3C-AB57-49E6-8C7B-1E69CD3FBF67} 
    EndGlobalSection 
EndGlobal 

PROCESS

J'ai couru le moniteur de processus, ne regardant que cnc.exe. Voici mon résultat:

Il semble que les enregistrements suivants s'exécutent à nouveau, encore et encore.

enter image description here

+0

Avez-vous beaucoup de bibliothèques statiques (pour C#, netmodules)? Ce sont ce qui ralentit construit sur mon système par beaucoup – SinisterMJ

+0

Très peu. Log4net, iTextsharp, GhostscriptSharp - c'est autour de ça. Notre autre projet a 10 fois plus de bibliothèques :-) –

+0

Cela dépend vraiment des Bibliothèques. Je ne connais pas ceux-ci et la portée de ceux-ci, mais je sais par exemple que j'ai pour un C++ une seule bibliothèque externe - fftw - qui augmente le temps de compilation de 8 secondes à près de 2 minutes. Donc, je voudrais enquêter à cette fin. – SinisterMJ

Répondre

7

Une raison possible pour laquelle votre temps de compilation est si long est que <MvcBuildViews> a la valeur true, ce qui compilera vos vues et vous alertera des erreurs de syntaxe dans votre vue. Parce que vous pouvez avoir un grand nombre de vues, ce processus peut allonger votre temps de construction de manière significative (minutes vs secondes). Here is a link to a site qui expliquera comment activer/désactiver l'attribut MvcBuildViews.Dans le cas où le site tombe en panne, vous ajoutez essentiellement la ligne suivante dans votre fichier de solution:

Pour activer

<MvcBuildViews>true</MvcBuildViews> 

Pour désactiver

<MvcBuildViews>false</MvcBuildViews> 

Cependant (opiniâtres diatribe à venir) Je ne suis pas d'accord avec lui sur le moment où vous devriez utiliser cette fonctionnalité. Il déclare que vous devriez activer cet attribut uniquement pour la version/production alors que je pense que vous ne devriez l'activer que pour les configurations de débogage. La plupart des développeurs testeront complètement leurs applications Web dans Debug, puis seulement et ensuite passeront à Release et à Push. Pourquoi ne voudriez-vous pas avoir une vérification de temps de compilation en mode débogage quand c'est ce que vous faites ... débogage et vérification des erreurs/bogues?

+1

Je voulais juste revenir et dire merci. Avait exactement le même problème avec notre projet et c'était la solution. –

+0

Ceci a ajouté une fusée dans mon vaisseau spatial de construction. –

8

Allumez bâtiment bavard. Passez à Outils -> Options -> Projets et solutions -> Générer et exécuter Définir la verbosité de MS Build sur Diagnostic. Vous devriez voir ce qui prend du temps.

Questions connexes