Uninstall and Install JQuery.UI.Combined package is so slow in a project with AutoT4MVC
TimLovellSmith opened this issue · comments
This may be a AutoT4MVC bug, or nuget bug, either way it would be great to get it fixed.
This is NuGet 2.5, VS 2012 Update 3 2013, and AutoT4MVC 1.0
Basically It seems like the policy of running on item added/removed/saved is having some unwanted consequences when the project file is having many items added/removed at once by nuget.
When I do Uninstall-Package of JQuery.UI.Combined, see that it takes a looong, long time, attach debugger and break at random I see a call stack with:
0oycex32.dll!Microsoft.VisualStudio.TextTemplating329C81B56F087DB273CD59F2421B901568B702993BDC31B037A56807D0421372135B7B8DAF7AD34EFE6AD1E2B96C8965704B2D440D84325EF4120CCDF84DDF23.GeneratedTextTransformation.TransformText() Line 37 + 0x12 bytes C#
Microsoft.VisualStudio.TextTemplating.11.0.dll!Microsoft.VisualStudio.TextTemplating.TransformationRunner.PerformTransformation() + 0xb53 bytes
Microsoft.VisualStudio.TextTemplating.11.0.dll!Microsoft.VisualStudio.TextTemplating.Engine.ProcessTemplateImplementation(Microsoft.VisualStudio.TextTemplating.TemplateProcessingSession session, string content, Microsoft.VisualStudio.TextTemplating.ITextTemplatingEngineHost host, string className, string classNamespace) + 0xb3 bytes
Microsoft.VisualStudio.TextTemplating.11.0.dll!Microsoft.VisualStudio.TextTemplating.Engine.ProcessTemplate(string content, Microsoft.VisualStudio.TextTemplating.ITextTemplatingEngineHost host) + 0x5c bytes
Microsoft.VisualStudio.TextTemplating.VSHost.11.0.dll!Microsoft.VisualStudio.TextTemplating.VSHost.TextTemplatingService.ProcessTemplate(string templateInputFile, string templateContent, Microsoft.VisualStudio.TextTemplating.VSHost.ITextTemplatingCallback processingCallback, object hierarchy) + 0x62 bytes
Microsoft.VisualStudio.TextTemplating.VSHost.11.0.dll!Microsoft.VisualStudio.TextTemplating.VSHost.BaseTemplatedCodeGenerator.ProcessTemplate(string inputFileName, string inputFileContent, Microsoft.VisualStudio.TextTemplating.VSHost.ITextTemplating processor, Microsoft.VisualStudio.Shell.Interop.IVsHierarchy hierarchy) + 0x15 bytes
Microsoft.VisualStudio.TextTemplating.VSHost.11.0.dll!Microsoft.VisualStudio.TextTemplating.VSHost.BaseTemplatedCodeGenerator.GenerateCode(string inputFileName, string inputFileContent) + 0x140 bytes
Microsoft.VisualStudio.TextTemplating.VSHost.11.0.dll!Microsoft.VisualStudio.TextTemplating.VSHost.BaseCodeGenerator.Generate(string inputFilePath, string inputFileContents, string defaultNamespace, out System.IntPtr outputFileContents, out int output, Microsoft.VisualStudio.Shell.Interop.IVsGeneratorProgress generateProgress) + 0x62 bytes
Microsoft.VisualStudio.TextTemplating.VSHost.11.0.dll!Microsoft.VisualStudio.TextTemplating.VSHost.BaseCodeGenerator.Microsoft.VisualStudio.Shell.Interop.IVsSingleFileGenerator.Generate(string wszInputFilePath, string bstrInputFileContents, string wszDefaultNamespace, System.IntPtr[] rgbOutputFileContents, out uint pcbOutput, Microsoft.VisualStudio.Shell.Interop.IVsGeneratorProgress pGenerateProgress) + 0x36 bytes
Microsoft.VisualStudio.Web.Application.dll!Microsoft.VisualStudio.Web.Application.WAProject.Microsoft.VisualStudio.Shell.Interop.IVsPersistHierarchyItem.SaveItem(Microsoft.VisualStudio.Shell.Interop.VSSAVEFLAGS saveFlags, string document, uint itemid, System.IntPtr docData, out int isCanceled) + 0x1b8 bytes
AutoT4MVC.dll!AutoT4MVC.AutoT4MVCPackage.RunTemplates(EnvDTE.Project[] projects) + 0xde bytes
AutoT4MVC.dll!AutoT4MVC.AutoT4MVCPackage.ItemRemoved(EnvDTE.ProjectItem ProjectItem) + 0x4a bytes
EnvDTE.dll!EnvDTE._dispProjectItemsEvents_SinkHelper.ItemRemoved(EnvDTE.ProjectItem A_1) + 0xf bytes
Hey,
Can you please try updating to the latest version of AutoT4MVC (1.2.0). You should be able to update directly from the Extension Manager.
This exact situation used to be a big problem, but in the last release I added throttling of the events so it will wait to start running the template until a second after the last event (item added/removed) has fired and will only run once per burst of files.
Cheers