Exemple #1
0
        private void BuildEvents_OnBuildBegin(vsBuildScope scope, vsBuildAction action)
        {
            _tasks.Clear();

            if (!_configuration.ShowErrorsInErrorList)
            {
                return;
            }

            var errorCategory = _configuration.TaskErrorCategory;

            var cultures = _resourceManager.Cultures;

            foreach (var entry in _resourceManager.TableEntries)
            {
                foreach (var culture in cultures)
                {
                    if (entry.GetError(culture, out var error))
                    {
                        var task = new ResourceErrorTask(entry)
                        {
                            ErrorCategory = errorCategory,
                            Category      = TaskCategory.BuildCompile,
                            Text          = error,
                            Document      = entry.Container.UniqueName,
                        };

                        task.Navigate += Task_Navigate;
                        _tasks.Add(task);
                    }
                }
            }
        }
        public void SetEntries(ICollection <ResourceTableEntry> entries, ICollection <CultureKey> cultures, int errorCategory)
        {
            _errorListProvider.SuspendRefresh();

            try
            {
                _tasks.Clear();

                var errorCount = 0;

                foreach (var entry in entries)
                {
                    foreach (var culture in cultures)
                    {
                        if (!entry.GetError(culture, out var error))
                        {
                            continue;
                        }

                        if (++errorCount >= 200)
                        {
                            return;
                        }

                        // Bug in VS2022: : this is the call that is responsible for the exception: 'Could not load type 'Microsoft.VisualStudio.Shell.Task' from assembly 'Microsoft.VisualStudio.Shell.15.0, Version=17.0.0.0
                        var task = new ResourceErrorTask(entry)
                        {
                            ErrorCategory = (TaskErrorCategory)errorCategory,
                            Category      = TaskCategory.BuildCompile,
                            Text          = error,
                            Document      = entry.Container.UniqueName,
                        };

                        task.Navigate += Task_Navigate;
                        _tasks.Add(task);
                    }
                }
            }
            finally
            {
                _errorListProvider.ResumeRefresh();
            }
        }