ИСПРАВЛЕНИЕ: Доступно обновление для включения настройки идентификации элементов управления для расширения модели тестирования пользовательского Интерфейса в коде в Visual Studio SP1 2010

Переводы статьи Переводы статьи
Код статьи: 2696646 - Vizualiza?i produsele pentru care se aplic? acest articol.
Развернуть все | Свернуть все

В этой статье

Аннотация

Доступно обновление для Microsoft Visual Studio 2010 пакетом обновления 1 (SP1). Это обновление добавляет новые модели расширения для включения настройки управления идентификации при записи и воспроизведении автоматизации тестов с использованием модели расширения закодированных тестирования пользовательского Интерфейса в SP1 2010 Visual Studio. После применения этого обновления для реализации новый подключаемый модуль для пользовательских элементов управления намного проще и более простым, чем перед.

Новая модель расширения добавляет следующие классы:
  • UITechnologyElementProxy.В качестве примера использования этого нового класса можно изменитьQueryIDметод. Этот метод указан как набор условий для сопоставления элементов пользовательского Интерфейса (UIMap). Чтобы добавить дополнительные условия или изменения существующих условий, можно использовать этот новый класс. Эти условия могут быть дополнительные атрибуты автоматизации. Или эти условия могут использоваться для добавления существующих файлов UIMap более доступные сведения об иерархии.
  • UITechnologyManagerProxy. Этот новый класс можно использовать для регистрации руководителю технологии с технологией диспетчера прокси-сервера.

Дополнительные сведения об использовании этих новых классов после применения этого обновления см. сценарии, в разделе «Дополнительная информация».

Дополнительная информация

Сценарии

В сценарии 1

Попробуйте протестировать пользовательский элемент управления с помощью закодированный пользовательский Интерфейс тест все выглядит хорошо, за исключением одного или двух вспомогательных проблемами например изменения ограничивающего прямоугольника пользовательский элемент управления или переопределить метод GetHashCode . Предыдущие модели расширения можно написать модуль для решения этой проблемы и переопределить метод предназначен. В то же время необходимо переопределить другие методы для работы подключаемого модуля, но может занять дни стабилизации. С помощью новой модели расширения можно сделать ту же работу, переопределение только указанных методов.

Сценарий 2

Разработка пользовательских элементов управления и убедитесь, что тест закодированный пользовательский Интерфейс не автоматизации действий пользовательский элемент управления. Например кнопка координации обратно только воспроизведение тестирования пользовательского Интерфейса в коде. Эти новые классы могут реализовать модель расширения для настройки свойств элемента управления поиска автоматизировать свои действия с помощью пользовательского Интерфейса тестирования закодированных в девять простые действия.

Корпорация Майкрософт предлагает примеры программного кода только для иллюстрации без явной или подразумеваемой гарантии. Это включает, но не ограничивается, подразумеваемые гарантии товарности или пригодности для определенной цели. В данной статье предполагается, что вы знакомы с языком программирования, рассчитаны и инструментами, которые используются для создания и отладки. Сотрудники службы поддержки Майкрософт могут объяснить возможности конкретной процедуры. Тем не менее они не изменяют примеров для обеспечения дополнительных функциональных возможностей или для удовлетворения конкретных требований.
  1. Передайте идентификатор свойства элемента управления через можно использовать свойство типа AccessibleObject, например справки или Описание свойства. Аналогичным образом передача значений других свойств как строку с разделителями AccessibleObject свойства, как показано в следующем примере:

    public override string Description
    {
        get
        {
            return "<custom_property_value1>"+";"+"<custom_property_value2>";
        }
    }

    Примечание Это лишь один метод для передачи дополнительных параметров для тестирования пользовательского Интерфейса в коде. Имеется несколько свойств, которые должны быть предоставлены, также можно передать пользовательские свойства с помощью подхода путем внедрения кода. Одним из подходов является использование канала WCF теста закодированный пользовательский Интерфейс и приложения. Канал может использоваться для передачи свойств, необходимых для определения элементов управления или для выполнения основной проверки элементов управления с помощью настраиваемых свойств. Другой способ передачи свойства — с помощью сообщений Windows. Чтобы решить на соответствующий метод, в зависимости от требований.

  2. Укажите имя пользовательского технологии в UITechnologyManagerProxyТаким образом, чтобы соответствующим образом закодированный пользовательский Интерфейс тестовой платформы расширения можно сделать внутренней прокси-регистрацию имен классов и соответствующие основные технологии диспетчера.

    Примечание В настоящее время подключаемых модулей сторонних нельзя использовать то же имя технологии как имена технологии core закодированных тестирования пользовательского Интерфейса. Кроме того несколько имен подключаемых модулей сторонних не конфликтуют. Несмотря на то, что подключаемый модуль загружается Диспетчер расширений, подключаемый модуль тестирования пользовательского Интерфейса в коде нельзя разрешить для регистрации несколько подключаемых модулей, которые имеют имена, повторяющиеся технологии. Таким образом настраиваемые элементы управления должен быть зарегистрирован с именем различные технологии в конструктор CustomTechnologyManager таких как в следующем примере:
    public CustomTechnologyManager()
                : base("MSAA", "<custom_technology_name>")
            {
            }
  3. Переопределить метод GetControlSupportLevelUITechnologyManagerProxyкласс. Тип AccessibleObject можно получить из свойства windowHandle , как показано в следующем примере. После этого, он становится довольно легко извлечь пользовательское свойство. После этого можно возвратить соответствующий уровень поддержки из пользовательского подключаемого модуля после сравнивается значение пользовательского свойства.
    internal enum OBJID : uint
            {
                WINDOW = 0x00000000,
                SYSMENU = 0xFFFFFFFF,
                TITLEBAR = 0xFFFFFFFE,
                MENU = 0xFFFFFFFD,
                CLIENT = 0xFFFFFFFC,
                VSCROLL = 0xFFFFFFFB,
                HSCROLL = 0xFFFFFFFA,
                SIZEGRIP = 0xFFFFFFF9,
                CARET = 0xFFFFFFF8,
                CURSOR = 0xFFFFFFF7,
                ALERT = 0xFFFFFFF6,
                SOUND = 0xFFFFFFF5,
            }
     
    internal static IAccessible AccessibleObjectFromWindow(IntPtr windowHandle)
            {
                Guid accessibleGuid = typeof(IAccessible).GUID;
                IAccessible accessible = null;
     
                if (AccessibleObjectFromWindow(windowHandle, (int)OBJID.WINDOW, ref accessibleGuid, ref accessible) != 0)
                {
                    Trace.TraceError("AccessibleObjectFromWindow failed for window handle {0}", windowHandle);
                }
     
                return accessible;
            }
     
     
           [DllImport("oleacc.dll")]
    internal static extern int AccessibleObjectFromWindow(IntPtr hWnd, int dwObjectID, ref Guid riid, ref IAccessible pAcc);
     
    public override int GetControlSupportLevel(IntPtr windowHandle)
            {
                int supportLevel = base.GetControlSupportLevel(windowHandle);
                if (supportLevel > 1)
                {
                    IAccessible accessibleObject = this.AccessibleObjectFromWindow(windowHandle);
                    if (accessibleObject!=null && accessibleObject.accDescription.Contains("custom_property_value"))
                    {
                        return (int)ControlSupport.ControlSpecificSupport;
                    }
                }
     
                return (int)ControlSupport.NoSupport;
            }
  4. Добавить пользовательское свойство, метод QueryID в UITechnologyElementProxyкласс. Можно добавить дополнительное условие или удалить условие из метода QueryID . Имейте в виду, как удалить условие свойство condition перестает отображаться в UIMap. После добавления дополнительного условия, она будет указана как тег дополнительные условия для свойств в файле .uitest созданный код при выполнении какого-либо действия на пользовательский элемент управления, как показано в следующем примере:
    <PropertyCondition Name=" <Custom_property_name>">Custom_property_value</PropertyCondition>
     
            public override IQueryElement QueryId
            {
                get 
                {
                    if (queryElement == null)
                    {
                        queryElement = base.QueryId;
                        if(string.Equals(this.ControlTypeName, ControlType.Button.ToString(), StringComparison.OrdinalIgnoreCase))
                        {
                            Utilities.UpdateQueryId(this, queryElement, new string[] 
                            {
                                <Custom_property_name>
                        });
                        }
                    }
                    return queryElement;
                }
            }


    Ниже приведен пример реализации метода Utilities.UpdateQueryId . Этот метод используется в предыдущем примере.
    internal static void UpdateQueryId(UITechnologyElement element, IQueryElement queryElement, string[] inclusionProperties)
            {
                List<IQueryCondition> conditionList = new List<IQueryCondition>(queryElement.Condition.Conditions);
                if (conditionList != null)
                {
                    bool updated = false;
                    foreach (string propertyToInclude in inclusionProperties)
                    {
                        bool exists = false;
                        foreach (IQueryCondition qCond in conditionList)
                        {
                            PropertyCondition pCond = qCond as PropertyCondition;
                            if (pCond != null &&
                                string.Equals(pCond.PropertyName, propertyToInclude, StringComparison.OrdinalIgnoreCase))
                            {
                                exists = true;
                                break;
                            }
                        }
     
                        if (!exists)
                        {
                            string propVal = element.GetPropertyValue(propertyToInclude) as string;
                            PropertyCondition newCondition = new PropertyCondition(propertyToInclude, propVal);
                            conditionList.Add(newCondition);
                            updated = true;
                        }
                    }
     
                    if (updated)
                    {
                        queryElement.Condition.Conditions = conditionList.ToArray();
                    }
                }
            }
  5. Переопределить метод GetPropertyValueUITechnologyElementProxyкласс, а затем установить значение как первой лексемой в строке описания. Эта реализация будет различаться в зависимости от того, как передать пользовательские свойства. Если передать свойства с помощью добавления кода следует создать канал и извлекать свойства из узла, как показано в следующем примере:
    public override object GetPropertyValue(string propertyName)
    {
        if (string.Equals(propertyName, “<custom_property_name>”))
        {
            string accDesc = this.GetPropertyValue(<custom_property_name>) as string;
            if (accDesc != null)
            {
                string[] descriptionTokens = accDesc.Split(new char[] { ';' });
                return descriptionTokens[0];
            }
        }
        return base.GetPropertyValue(propertyName);
    }
  6. Укажите пользовательский диспетчер технологии в UITechnologyElementProxyкласс и связать его с основной элемент технологии IUI, как показано в следующем примере:
    public RadGridViewTechnologyElement(CustomTechnologyManager technologyManager, IUITechnologyElement coreElement)
                : base(technologyManager, coreElement)
            {
            }
  7. Если у вас есть специализированный класс для создания пользовательского кода и были добавлены дополнительные условия в методе QueryID , как описано в шаге 4, необходимо предоставить пользовательское свойство как свойство допустимых для данного элемента, как показано в следующем примере:
    protected override Dictionary<string, bool> GetValidSearchProperties()
    {
        Dictionary<string, bool> validSearchProperties = base.GetValidSearchProperties();
        if (!validSearchProperties.ContainsKey(<custom_property_name>))
        {
            validSearchProperties.Add((<custom_property_name>, true);
        }
     
        return validSearchProperties;
    }
  8. Добавьте в модуль PropertyProvider условия для установки уровня поддержки управления, как показано в следующем примере.

    Примечание При извлечении свойств uiTestControl метода рекомендуется использовать только те свойства, которые доступны в свойстве SearchProperties или в свойстве FilterProperties метод uiTestControl . Не пытайтесь извлечь дополнительные свойства, поскольку динамических элементов управления могут быть недоступны во время создания кода.
    public override int GetControlSupportLevel(UITestControl uiTestControl)
            {
                if (IsSupported(uiTestControl))
                {
                    return (int)ControlSupport.ControlSpecificSupport;
                }
     
                return (int)ControlSupport.NoSupport;
            }
     
    private static bool IsSupported(UITestControl uiTestControl)
            {
                string accDescriptionValue = string.Empty;
                string objectType = string.Empty;
     
                if (uiTestControl.SearchProperties != null && uiTestControl.SearchProperties.Count > 0)
                {
                    PropertyExpression controlTypeExpression = uiTestControl.SearchProperties.Find(“<Custom_property_name>”);
                    if (controlTypeExpression != null)
                    {
                        accDescriptionValue = controlTypeExpression.PropertyValue;
                        string[] descriptionTokens = accDescriptionValue.Split(new char[] { ';' });
                        objectType = descriptionTokens[0];
                    }
                }
     
                if (string.Equals(uiTestControl.TechnologyName, “<Custom_technology_name>”, StringComparison.OrdinalIgnoreCase)
                     && (objectType.Contains(“<Custom_property_value>”)))
                 
                {
     
                    return true;
                }
                return false;
            }
  9. Реализуйте метод UITestExtensionPackage , а затем вложите службы PropertyProvider и TechnologyManager путем переопределения метода GetService , как показано в следующем примере:
    public override object GetService(Type serviceType)
    {
        Trace.WriteLine("RadGridViewExtensionPackage.GetService(" + serviceType.ToString() + ")");
        if (serviceType == typeof(UITestPropertyProvider))
            return this.PropertyProvider;
        else if (serviceType == typeof(UITechnologyManager))
            return this.TechnologyManager;
        return null;
    }

Сведения об обновлении

Исправление от корпорации Майкрософт. Однако данное исправление предназначено для устранения проблемы, описанной в этой статье. Данное исправление только в тех системах, где наблюдается вышеописанная проблема, описанная в данной статье. Это исправление может проходить дополнительное тестирование. Поэтому если эта проблема серьезно не влияет, рекомендуется отложить ее решение до выхода ближайшего пакета обновления, содержащего это исправление.

Если исправление доступно для загрузки, имеется раздел «Исправление доступно для загрузки» в верхней части статьи базы знаний. Если этот раздел не отображается, обратитесь в службу и службу поддержки для получения исправления.

Примечание Если возникают другие проблемы или необходимо устранить неполадки, возможно создать отдельный запрос на обслуживание. Затраты на поддержку обычно будет применяться к Дополнительные вопросы и проблемы, которые не соответствуют требованиям конкретного исправления. Полный список телефонов поддержки и обслуживания клиентов корпорации Майкрософт или создать отдельный запрос посетите веб-узел Майкрософт:
условиям обслуживания
Примечание В форме «Исправление доступно для загрузки» отображаются языки, для которых доступно исправление. Если язык не отображается, это потому, что исправление для данного языка отсутствует.

Необходимые условия

Это исправление необходимо иметь пакет обновления 1 (SP1) применяется к одной из следующих:
  • Премия 2010 Microsoft Visual Studio
  • Максимальная Visual Studio Microsoft 2010
  • Профессиональный тест 2010 Microsoft Visual Studio
  • Microsoft Visual Studio Team Foundation Server 2010
  • Агент тестирования Microsoft Visual Studio 2010

Для получения дополнительных сведений о получении пакета обновления 1 для Visual Studio 2010 щелкните следующий номер статьи базы знаний Майкрософт:
983509 Описание Visual Studio 2010 пакетом обновления 1

Информация о перезагрузке

Необходимо перезагрузить компьютер после установки этого исправления. Рекомендуется закрыть все экземпляры Visual Studio перед установкой исправления.

Сведения о замене исправлений

Это исправление не заменяет ранее выпущенные исправления.

Сведения о файле

Это исправление устанавливает файлы с атрибутами, которые перечислены в следующей таблице. Дата и время для файлов указаны в формате общего скоординированного времени (UTC). Дата и время файлов на локальном компьютере, отображаются в местном времени вместе с вашей текущей смещения летнего времени (DST). Кроме того даты и время могут изменяться при выполнении определенных операций с файлами.
Свернуть эту таблицуРазвернуть эту таблицу
Имя файлаВерсия файлаРазмер файлаДатаВремяПлатформа
Leviewer.exe10.0.40219.396118,34428 Апреля 201218: 41x 86
Microsoft.TeamFoundation.Build.Client.dll10.0.40219.396436,35227 Апреля 20127: 59x 86
Microsoft.TeamFoundation.Build.Controls.dll10.0.40219.3961,365,12828 Апреля 201218: 41x 86
Microsoft.TeamFoundation.Client.dll10.0.40219.3961,595,51227 Апреля 20127: 59x 86
Microsoft.TeamFoundation.Common.dll10.0.40219.396525,43227 Апреля 20127: 59x 86
Microsoft.TeamFoundation.Common.Library.dll10.0.40219.396334,98427 Апреля 20127: 59x 86
Microsoft.TeamFoundation.Controls.dll10.0.40219.396938,61628 Апреля 201218: 41x 86
Microsoft.TeamFoundation.dll10.0.40219.396675,43227 Апреля 20127: 59x 86
Microsoft.TeamFoundation.Lab.activities.dll10.0.40219.396772,74428 Апреля 201218: 41x 86
Microsoft.TeamFoundation.Lab.Client.dll10.0.40219.396153,21627 Апреля 20127: 59x 86
Microsoft.TeamFoundation.Lab.uiutils.dll10.0.40219.396266,88028 Апреля 201218: 41x 86
Microsoft.TeamFoundation.Lab.Workflow.activities.dll10.0.40219.396440,47228 Апреля 201218: 41x 86
Microsoft.TeamFoundation.officeintegration.Common.dll10.0.40219.396375,96828 Апреля 201218: 41x 86
Microsoft.TeamFoundation.officeintegration.Project.dll10.0.40219.396517,28028 Апреля 201218: 41x 86
Microsoft.TeamFoundation.Sync.Mapping.dll10.0.40219.39672,32028 Апреля 201218: 41x 86
Microsoft.TeamFoundation.Sync.Provisioning.dll10.0.40219.396194,19228 Апреля 201218: 41x 86
Microsoft.TeamFoundation.testmanagement.activities.Common.dll10.0.40219.396315,05628 Апреля 201218: 41x 86
Microsoft.TeamFoundation.testmanagement.activities.dll10.0.40219.3961,512,09628 Апреля 201218: 41x 86
Microsoft.TeamFoundation.testmanagement.activityruntime.dll10.0.40219.396219,81628 Апреля 201218: 41x 86
Microsoft.TeamFoundation.testmanagement.Client.dll10.0.40219.396685,20827 Апреля 20127: 59x 86
Microsoft.TeamFoundation.testmanagement.Client.Themes.dll10.0.40219.3963,059,36828 Апреля 201218: 41x 86
Microsoft.TeamFoundation.testmanagement.Client.WPFControls.dll10.0.40219.396257,71228 Апреля 201218: 41x 86
Microsoft.TeamFoundation.testmanagement.clientpackage.dll10.0.40219.39673,89628 Апреля 201218: 41x 86
Microsoft.TeamFoundation.testmanagement.Common.dll10.0.40219.39634,45627 Апреля 20127: 59x 86
Microsoft.TeamFoundation.testmanagement.Controller.dll10.0.40219.396120,99228 Апреля 201218: 41x 86
Microsoft.TeamFoundation.testmanagement.Controls.dll10.0.40219.396496,28028 Апреля 201218: 41x 86
Microsoft.TeamFoundation.testmanagement.Controls.wpfworkitemcontrols.dll10.0.40219.396100,04028 Апреля 201218: 41x 86
Microsoft.TeamFoundation.VersionControl.Client.dll10.0.40219.396706,20027 Апреля 20127: 59x 86
Microsoft.TeamFoundation.VersionControl.Common.dll10.0.40219.396233,11227 Апреля 20127: 59x 86
Microsoft.TeamFoundation.VersionControl.Controls.dll10.0.40219.3964,439,19228 Апреля 201218: 41x 86
Microsoft.TeamFoundation.WorkItemTracking.Client.dll10.0.40219.396699,03227 Апреля 20127: 59x 86
Microsoft.TeamFoundation.WorkItemTracking.Controls.dll10.0.40219.3961,215,13628 Апреля 201218: 41x 86
Microsoft.TeamFoundation.WorkItemTracking.Proxy.dll10.0.40219.396390,80827 Апреля 20127: 59x 86
Microsoft.VisualStudio.qualitytools.agentobject.dll10.0.40219.396106,64828 Апреля 201218: 41x 86
Microsoft.VisualStudio.qualitytools.Common.dll10.0.40219.3961,355,40828 Апреля 201218: 41x 86
Microsoft.VisualStudio.qualitytools.controllerobject.dll10.0.40219.396276,12828 Апреля 201218: 41x 86
Microsoft.VisualStudio.qualitytools.datacollectionagentobject.dll10.0.40219.39637,04828 Апреля 201218: 41x 86
Microsoft.VisualStudio.qualitytools.executioncommon.dll10.0.40219.396481,44028 Апреля 201218: 41x 86
Microsoft.VisualStudio.qualitytools.Resource.dll10.0.40219.396966,80028 Апреля 201218: 41x 86
Microsoft.VisualStudio.qualitytools.testcasemanagement.dll10.0.40219.3961,280,16828 Апреля 201218: 41x 86
Microsoft.VisualStudio.qualitytools.TMI.dll10.0.40219.396398,47228 Апреля 201218: 41x 86
Microsoft.VisualStudio.TeamFoundation.Build.dll10.0.40219.396142,48028 Апреля 201218: 41x 86
Microsoft.VisualStudio.TeamFoundation.dll10.0.40219.39693,82428 Апреля 201218: 41x 86
Microsoft.VisualStudio.TeamFoundation.teamexplorer.dll10.0.40219.396799,90428 Апреля 201218: 41x 86
Microsoft.VisualStudio.TeamFoundation.VersionControl.dll10.0.40219.39659,04828 Апреля 201218: 41x 86
Microsoft.VisualStudio.TeamFoundation.VersionControl.dll10.0.40219.39659,56028 Апреля 201218: 41x 86
Microsoft.VisualStudio.TeamFoundation.VersionControl.dll10.0.40219.39661,09628 Апреля 201218: 41x 86
Microsoft.VisualStudio.TeamFoundation.VersionControl.dll10.0.40219.39663,65628 Апреля 201218: 41x 86
Microsoft.VisualStudio.TeamFoundation.VersionControl.dll10.0.40219.396942,24028 Апреля 201218: 41x 86
Microsoft.VisualStudio.TeamFoundation.WorkItemTracking.dll10.0.40219.396460,96828 Апреля 201218: 41x 86
Microsoft.VisualStudio.TeamSystem.Integration.dll10.0.40219.396193,17628 Апреля 201218: 41x 86
Microsoft.VisualStudio.TestTools.manualtest.Common.dll10.0.40219.396813,21628 Апреля 201218: 41x 86
Microsoft.VisualStudio.TestTools.uitest.codegeneration.dll10.0.40219.396155,30428 Апреля 201218: 41x 86
Microsoft.VisualStudio.TestTools.uitest.Extension.dll10.0.40219.396193,69628 Апреля 201218: 41x 86
Microsoft.VisualStudio.TestTools.uitest.Extension.IE.dll10.0.40219.396252,06428 Апреля 201218: 41x 86
Microsoft.VisualStudio.TestTools.uitest.Extension.MSAA.dll10.0.40219.396115,36828 Апреля 201218: 41x 86
Microsoft.VisualStudio.TestTools.uitest.Extension.UIA.dll10.0.40219.396107,17628 Апреля 201218: 41x 86
Microsoft.VisualStudio.TestTools.uitest.Framework.dll10.0.40219.39658,01628 Апреля 201218: 41x 86
Microsoft.VisualStudio.TestTools.uitest.playback.dll10.0.40219.39666,20028 Апреля 201218: 41x 86
Microsoft.VisualStudio.TestTools.uitest.Recorder.dll10.0.40219.396230,04028 Апреля 201218: 41x 86
Microsoft.VisualStudio.TestTools.uitesting.dll10.0.40219.396339,60028 Апреля 201218: 41x 86
Msdiff.dll10.0.40219.396485,44828 Апреля 201218: 41x 86
Mtm.exe10.0.40219.396449,08828 Апреля 201218: 41x 86
Qtagent.exe10.0.40219.39621,06428 Апреля 201218: 41x 86
Qtagent.exe10.0.40219.39621,07228 Апреля 201218: 41x 86
Qtagent32.exe10.0.40219.39621,06428 Апреля 201218: 41x 86
Qtagent32.exe10.0.40219.39621,07228 Апреля 201218: 41x 86
Qtagentservice.exe10.0.40219.39699,92828 Апреля 201218: 41x 86
Rpfplayback.dll10.0.40219.396482,47228 Апреля 201218: 41x 86
Tf.exe10.0.40219.396325,69628 Апреля 201218: 41x 86


Ссылки

Для получения дополнительных сведений о терминологии, обновление программного обеспечения щелкните следующий номер статьи базы знаний Майкрософт:
824684 Описание стандартной терминологии, используемой для описания обновлений программных продуктов Майкрософт

Свойства

Код статьи: 2696646 - Последний отзыв: 23 мая 2012 г. - Revision: 1.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft Visual Studio 2010 Service Pack 1 на следующих платформах
    • Microsoft Visual Studio 2010 Ultimate
    • Microsoft Visual Studio 2010 Premium with MSDN
    • Microsoft Visual Studio Test Professional 2010
    • Microsoft Visual Studio Team Foundation Server 2010
    • Microsoft Visual Studio Agents 2010
Ключевые слова: 
kbautohotfix kbqfe kbhotfixserver kbfix kbbug kbexpertiseinter kbsurveynew kbmt KB2696646 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке: 2696646

Отправить отзыв

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com