5

Sto lavorando a un progetto di Visual Studio MVC-4. Ci vogliono circa 2 minuti per costruire la soluzione, il che non ha senso. È una piccola soluzione con 5 progetti, con pochi (meno di qualche centinaio) file in ogni progetto. Per confrontare, abbiamo un progetto che è 10-15 volte la dimensione di questo progetto (forme Web), che costruisce in meno di 3 secondi sul mio computer.L'applicazione MVC è estremamente lenta per la creazione

Ho sentito che abbiamo migrato da MVC2 a MVC4 e il team ricorda che la soluzione era molto più veloce prima della migrazione, ma non se la ricordavano esattamente.

Non è solo sul mio computer, ma sul resto dei computer della squadra. Sono abbastanza sicuro che sia nel file della soluzione in qualche modo.

Abbiamo solo un evento di post-generazione e non ha alcun effetto rimuoverlo.

Qualche idea su cosa fare?

Quello che ho cercato

Simboli:

ho letto un post qui su SO, su come impostare i simboli per l'esecuzione in locale, invece di server. Ho fatto che:

enter image description here

Attiva "solo il mio codice" assicurarsi che solo il mio codice è il debug:

enter image description here

Eliminazione di cartelle temp

Cancellate tutte le diverse cartelle temporanee sul mio computer.

file di soluzione

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 Monitor

Ho eseguito il monitor di processo, solo guardando cnc.exe. Questo è il mio risultato:

Sembra che i seguenti record vengano eseguiti nuovamente, ancora e ancora.

enter image description here

+0

Stai avendo un sacco di librerie statiche (per C#, netmodules)? Quelli sono ciò che rallenta le build sul mio sistema di molto – SinisterMJ

+0

Pochissimi. Log4net, iTextsharp, GhostscriptSharp - questo è tutto. Il nostro altro progetto ha 10 volte la quantità di librerie :-) –

+0

Dipende davvero dalle Librerie. Non conosco quelli e la portata di essi, ma so ad esempio che ho per un C++ una sola libreria esterna - fftw - che aumenta il tempo di compilazione da 8 secondi a quasi 2 minuti. Quindi vorrei indagare su quella fine. – SinisterMJ

risposta

7

Una possibile ragione per cui il tempo di compilazione è così lungo è che hai impostato <MvcBuildViews> su true, che compilerà le tue viste e ti avviserà di eventuali errori di sintassi nella tua vista. Poiché è possibile avere un numero elevato di visualizzazioni, questo processo può allungare significativamente il tempo di costruzione (minuti o secondi). Here is a link to a site che spiegherà come disattivare/attivare l'attributo MvcBuildViews.Nel caso in cui il sito va giù, che, fondamentalmente, aggiungere la seguente riga al vostro file di soluzione:

per abilitare

<MvcBuildViews>true</MvcBuildViews> 

Per disattivare

<MvcBuildViews>false</MvcBuildViews> 

Tuttavia (diatriba supponente venire) Non sono d'accordo con lui quando dovresti usare questa funzione. Dichiara che dovresti avere questo attributo abilitato solo per Release/Production mentre penso che dovresti averlo abilitato solo per le configurazioni di Debug. La maggior parte degli sviluppatori testerà completamente le proprie app Web in Debug e quindi solo dopo passerà a Release e push. Perché non si vorrebbe avere un controllo del tempo di compilazione in modalità Debug quando questo è ciò che si sta facendo ... debuggando e controllando errori/bug?

+1

Volevo solo tornare e dire grazie. Aveva lo stesso identico problema con il nostro progetto e questa era la soluzione. –

+0

Questo ha aggiunto un razzo nella mia astronave di costruzione. –

8

Accendere edificio verbose. Vai a Strumenti -> Opzioni -> Progetti e soluzioni -> Crea ed esegui Imposta la verbosità di MS Build su Diagnostica. Dovresti vedere cosa ci vuole tempo.

Problemi correlati