REVISIÓN: Una actualización está disponible para permitir la personalización de la identificación de controles para el modelo de extensión de código de prueba de interfaz de usuario en el SP1 de 2010 Visual Studio

Seleccione idioma Seleccione idioma
Id. de artículo: 2696646 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

Hay una actualización de Service Pack 1 (SP1) de Microsoft Visual Studio de 2010. Esta actualización agrega un nuevo modelo de extensión para permitir la personalización de la identificación de controles al grabar y reproducir las pruebas de automatización mediante el modelo de extensión de prueba de interfaz de usuario codificado en SP1 de 2010 Visual Studio. Después de aplicar esta actualización, la implementación de un nuevo complemento para controles personalizados es mucho más sencillo y más sencillo que antes.

El nuevo modelo de extensión agrega las siguientes clases:
  • UITechnologyElementProxy.Como ejemplo de cómo utilizar esta nueva clase, puede cambiar elQueryIDmétodo. Este método se muestra como un conjunto de condiciones en el mapa de los elementos de interfaz de usuario (UIMap). Puede utilizar esta nueva clase para agregar más condiciones o para cambiar las condiciones existentes. Estas condiciones se podrían convertir atributos adicionales de automatización. O bien, estas condiciones se podrían utilizar para agregar información de jerarquía más disponible para los archivos UIMap existentes.
  • UITechnologyManagerProxy. Puede utilizar esta nueva clase para registrar el Administrador de tecnología con el Administrador de tecnología de servidor proxy.

Para obtener más información acerca de cómo utilizar estas nuevas clases después de aplicar esta actualización, consulte los escenarios en la sección "Más información".

Más información

Escenarios

Escenario 1

Intente probar un control personalizado con el aspecto codificado IU Test. todo bien excepto para uno o dos problemas técnicos menores como los cambios en el rectángulo delimitador de un control personalizado o el reemplazo del método GetHashCode . Con el modelo de extensión anterior, se puede escribir un complemento para resolver este problema y reemplazar el método previsto. Pero al mismo tiempo, tendría que reemplazar otros métodos para realizar el trabajo de Plug-in y puede tardar días para realizar la estabilización. Con el nuevo modelo de extensión, puede realizar el mismo trabajo reemplazando únicamente los métodos previstos.

Escenario 2

Desarrollar un control personalizado y compruebe que la prueba de interfaz de usuario codificado no automatizar las acciones del control personalizado. Por ejemplo, hace clic en la prueba de interfaz de usuario codificado coordinar solo reproduce atrás. Mediante el uso de estas nuevas clases, puede implementar el modelo de extensión para personalizar las propiedades de búsqueda de un control para automatizar sus acciones mediante el uso de la prueba de interfaz de usuario codificado en los nueve pasos sencillos que siguen.

Microsoft proporciona ejemplos de programación con fines ilustrativos únicamente, sin ninguna garantía tanto expresa como implícita. Esto incluye, pero no se limita a las garantías implícitas de comerciabilidad o idoneidad para un fin determinado. En este artículo se supone que está familiarizado con el lenguaje de programación que se muestra y con las herramientas que se utilizan para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento. Sin embargo, no cambiarán en estos ejemplos para proporcionar funcionalidad adicional o para construir los procedimientos para satisfacer sus requerimientos específicos.
  1. Pasar propiedad de identificación del control a través de una propiedad utilizable del tipo AccessibleObject como, por ejemplo, la propiedad Descripción o Ayuda . Pasar de forma similar, otros valores de propiedad como una cadena separada por delimitadores de la propiedad AccessibleObject , como en el ejemplo siguiente:

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

    Nota Se trata de un solo método para pasar parámetros adicionales a la prueba de interfaz de usuario codificado. Si tiene varias propiedades que se deben exponer, también puede pasar las propiedades personalizadas utilizando el método de inyección de código. Un posible enfoque sería utilizar un canal WCF entre la prueba de interfaz de usuario codificado y la aplicación real. El canal puede utilizarse para pasar las propiedades que son necesarias para identificar los controles o realizar una validación básica de los controles mediante las propiedades personalizadas. Otro método para pasar propiedades es mediante el uso de los mensajes de Windows. Puede decidir sobre el método adecuado, según sus requisitos.

  2. Especifique el nombre de la tecnología personalizada en el UITechnologyManagerProxyclase y el Administrador de tecnología de núcleo correspondiente el nombre para que el marco de trabajo de extensión de código de prueba de interfaz de usuario puede realizar el registro de proxy interna en consecuencia.

    Nota Actualmente, plug-ins de terceros no puede utilizar el mismo nombre de la tecnología como cualquiera de los nombres de tecnología de núcleo codificado prueba de interfaz de usuario. También, los varios nombres de Plug-in de terceros no puedan causar conflictos. Aunque el complemento se carga por el Administrador de extensiones, el Administrador de complementos de código de prueba de interfaz de usuario no puede permitir para el registro de varios complementos que tengan nombres duplicados de la tecnología. Por lo tanto, los controles personalizados tienen registrado con un nombre diferente de la tecnología en el constructor de CustomTechnologyManager , como en el ejemplo siguiente:
    public CustomTechnologyManager()
                : base("MSAA", "<custom_technology_name>")
            {
            }
  3. Reemplace el método GetControlSupportLevel de la UITechnologyManagerProxyclase. Puede obtener el tipo de AccessibleObject de la propiedad windowHandle , como en el ejemplo siguiente. Después de hacer esto, resulta bastante fácil extraer la propiedad personalizada. Después puede volver el nivel adecuado de soporte técnico de la costumbre complemento después de que se valida con respecto al valor de propiedad personalizada.
    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. Agregar una propiedad personalizada para el método QueryID en el UITechnologyElementProxyclase. Puede agregar una condición adicional o quitar una condición de que el método QueryID . Tenga en cuenta que tan pronto como se quita una condición, la condición de la propiedad deja que aparezca en el UIMap. Después se agrega una condición adicional, se mostrarán como una etiqueta adicional para las condiciones de propiedad en el archivo .uitest del código generado, si se realiza cualquier acción en el control personalizado, como en el ejemplo siguiente:
    <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;
                }
            }


    El siguiente es un ejemplo de cómo implementar el método Utilities.UpdateQueryId . Este método se utiliza en el ejemplo anterior.
    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. Reemplace el método GetPropertyValue de la UITechnologyElementProxyla clase y, a continuación, establezca el valor como el primer símbolo (token) de la cadena de descripción. Esta aplicación será distinto dependiendo de cómo pasar las propiedades personalizadas. Si utiliza la inyección de código para pasar las propiedades, debe crear un canal y a continuación, obtener las propiedades desde el host, como en el ejemplo siguiente:
    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. Especificar el director de tecnología personalizada en el UITechnologyElementProxyla clase y se asocia con el núcleo IIU tecnología de elemento, como en el ejemplo siguiente:
    public RadGridViewTechnologyElement(CustomTechnologyManager technologyManager, IUITechnologyElement coreElement)
                : base(technologyManager, coreElement)
            {
            }
  7. Si tiene una clase especializada para la generación de código personalizado, y si se han agregado las condiciones de propiedad adicional en el método QueryID tal como se describe en el paso 4, tiene que exponer la propiedad personalizada como una propiedad de búsqueda válida para este elemento, como en el ejemplo siguiente:
    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. En la extensión PropertyProvider , agregue las condiciones para establecer el nivel de soporte técnico de control, como en el ejemplo siguiente.

    Nota Cuando se recuperan las propiedades del método uiTestControl , le recomendamos que utilice sólo las propiedades que están disponibles en la propiedad SearchProperties o en la propiedad FilterProperties de un método uiTestControl . No intente recuperar las propiedades adicionales, ya que el control directo puede no estar disponible durante la generación de código.
    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. Implementar el método UITestExtensionPackage y, a continuación, adjuntar los servicios de PropertyProvider y TechnologyManager reemplazando el método GetService , como en el ejemplo siguiente:
    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;
    }

Actualizar la información

Hay una revisión compatible de Microsoft. Sin embargo, esta revisión se diseñó para corregir el problema descrito en este artículo. Aplicar esta revisión sólo a los sistemas que experimenten el problema descrito en este artículo. Esta revisión podría ser sometida a comprobaciones adicionales. Por lo tanto, si no se ve muy afectado por este problema, recomendamos que espere a la próxima actualización de software que contenga esta revisión.

Si la revisión está disponible para descargar, hay una sección de "Descarga de revisión disponible" en la parte superior de este artículo de Knowledge Base. Si no aparece en esta sección, póngase en contacto con servicio al cliente de Microsoft y soporte técnico para obtener la revisión.

Nota Si se producen problemas adicionales o cualquier solución de problemas es necesario, es posible que deba crear una solicitud de servicio independiente. Los costos habituales de soporte se aplicarán a las cuestiones y problemas que no reúnan los requisitos para esta revisión en cuestión. Para una lista completa de los números de teléfono de servicio al cliente de Microsoft y soporte técnico o para crear una solicitud de servicio independiente, visite el siguiente sitio Web de Microsoft:
http://support.Microsoft.com/contactus/?ws=support
Nota El formulario de "Descarga de revisión disponible" muestra los idiomas para que la revisión está disponible. Si no ve su idioma, esto es porque una revisión no está disponible para ese idioma.

Requisitos previos

Para aplicar esta revisión, debe tener Service Pack 1 (SP1) aplicado a una de las siguientes:
  • Visual Studio de Microsoft 2010 Premium
  • Máximo 2010 de Visual Studio de Microsoft
  • Visual Studio de Microsoft prueba 2010 Professional
  • Microsoft Visual Studio de Team Foundation Server de 2010
  • Agente de prueba de Microsoft Visual Studio 2010

Para obtener más información acerca de cómo obtener el Service Pack 1 de Visual Studio de 2010, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
983509 Descripción de Visual Studio 2010 Service Pack 1

Información de reinicio

Tendrá que reiniciar el equipo después de aplicar esta revisión. Se recomienda que salga de todas las instancias de Visual Studio antes de aplicar esta revisión.

Información de reemplazo de hotfix

Esta revisión no sustituye a ninguna revisión publicada previamente.

Información de archivo

Esta revisión instala los archivos que tienen los atributos que se enumeran en las tablas siguientes. Las fechas y horas de estos archivos se muestran en hora Universal coordinada (UTC). Se muestran las fechas y las horas de estos archivos en el equipo local en horario local junto con la diferencia de horario de verano (DST) actual. Además, las fechas y las horas pueden cambiar cuando realiza determinadas operaciones en los archivos.
Contraer esta tablaAmpliar esta tabla
Nombre de archivoVersión del archivoTamaño de archivoFechaTiempoPlataforma
Leviewer.exe10.0.40219.396118,34428-Abr-201218: 41x 86
Microsoft.TeamFoundation.Build.Client.dll10.0.40219.396436,35227-Abr-20127: 59x 86
Microsoft.TeamFoundation.Build.Controls.dll10.0.40219.3961,365,12828-Abr-201218: 41x 86
Microsoft.TeamFoundation.Client.dll10.0.40219.3961,595,51227-Abr-20127: 59x 86
Microsoft.TeamFoundation.Common.dll10.0.40219.396525,43227-Abr-20127: 59x 86
Microsoft.TeamFoundation.Common.Library.dll10.0.40219.396334,98427-Abr-20127: 59x 86
Microsoft.TeamFoundation.Controls.dll10.0.40219.396938,61628-Abr-201218: 41x 86
Microsoft.TeamFoundation.dll10.0.40219.396675,43227-Abr-20127: 59x 86
Microsoft.TeamFoundation.Lab.Activities.dll10.0.40219.396772,74428-Abr-201218: 41x 86
Microsoft.TeamFoundation.Lab.Client.dll10.0.40219.396153,21627-Abr-20127: 59x 86
Microsoft.TeamFoundation.Lab.uiutils.dll10.0.40219.396266,88028-Abr-201218: 41x 86
Microsoft.TeamFoundation.Lab.Workflow.Activities.dll10.0.40219.396440,47228-Abr-201218: 41x 86
Microsoft.TeamFoundation.officeintegration.Common.dll10.0.40219.396375,96828-Abr-201218: 41x 86
Microsoft.TeamFoundation.officeintegration.Project.dll10.0.40219.396517,28028-Abr-201218: 41x 86
Microsoft.TeamFoundation.Sync.Mapping.dll10.0.40219.39672,32028-Abr-201218: 41x 86
Microsoft.TeamFoundation.Sync.provisioning.dll10.0.40219.396194,19228-Abr-201218: 41x 86
Microsoft.TeamFoundation.testmanagement.Activities.Common.dll10.0.40219.396315,05628-Abr-201218: 41x 86
Microsoft.TeamFoundation.testmanagement.Activities.dll10.0.40219.3961,512,09628-Abr-201218: 41x 86
Microsoft.TeamFoundation.testmanagement.activityruntime.dll10.0.40219.396219,81628-Abr-201218: 41x 86
Microsoft.TeamFoundation.testmanagement.Client.dll10.0.40219.396685,20827-Abr-20127: 59x 86
Microsoft.TeamFoundation.testmanagement.Client.Themes.dll10.0.40219.3963,059,36828-Abr-201218: 41x 86
Microsoft.TeamFoundation.testmanagement.Client.wpfcontrols.dll10.0.40219.396257,71228-Abr-201218: 41x 86
Microsoft.TeamFoundation.testmanagement.clientpackage.dll10.0.40219.39673,89628-Abr-201218: 41x 86
Microsoft.TeamFoundation.testmanagement.Common.dll10.0.40219.39634,45627-Abr-20127: 59x 86
Microsoft.TeamFoundation.testmanagement.Controller.dll10.0.40219.396120,99228-Abr-201218: 41x 86
Microsoft.TeamFoundation.testmanagement.Controls.dll10.0.40219.396496,28028-Abr-201218: 41x 86
Microsoft.TeamFoundation.testmanagement.Controls.wpfworkitemcontrols.dll10.0.40219.396100,04028-Abr-201218: 41x 86
Microsoft.TeamFoundation.WorkItemTracking.Client.dll10.0.40219.396706,20027-Abr-20127: 59x 86
Microsoft.TeamFoundation.VersionControl.Common.dll10.0.40219.396233,11227-Abr-20127: 59x 86
Microsoft.TeamFoundation.VersionControl.Controls.dll10.0.40219.3964,439,19228-Abr-201218: 41x 86
Microsoft.TeamFoundation.WorkItemTracking.Client.dll10.0.40219.396699,03227-Abr-20127: 59x 86
Microsoft.TeamFoundation.WorkItemTracking.Controls.dll10.0.40219.3961,215,13628-Abr-201218: 41x 86
Microsoft.TeamFoundation.WorkItemTracking.proxy.dll10.0.40219.396390,80827-Abr-20127: 59x 86
Microsoft.VisualStudio.QualityTools.agentobject.dll10.0.40219.396106,64828-Abr-201218: 41x 86
Microsoft.VisualStudio.QualityTools.Common.dll10.0.40219.3961,355,40828-Abr-201218: 41x 86
Microsoft.VisualStudio.QualityTools.controllerobject.dll10.0.40219.396276,12828-Abr-201218: 41x 86
Microsoft.VisualStudio.QualityTools.datacollectionagentobject.dll10.0.40219.39637,04828-Abr-201218: 41x 86
Microsoft.VisualStudio.QualityTools.executioncommon.dll10.0.40219.396481,44028-Abr-201218: 41x 86
Microsoft.VisualStudio.QualityTools.Resource.dll10.0.40219.396966,80028-Abr-201218: 41x 86
Microsoft.VisualStudio.QualityTools.testcasemanagement.dll10.0.40219.3961,280,16828-Abr-201218: 41x 86
Microsoft.VisualStudio.QualityTools.TMI.dll10.0.40219.396398,47228-Abr-201218: 41x 86
Microsoft.VisualStudio.TeamFoundation.Build.dll10.0.40219.396142,48028-Abr-201218: 41x 86
Microsoft.VisualStudio.TeamFoundation.dll10.0.40219.39693,82428-Abr-201218: 41x 86
Microsoft.VisualStudio.TeamFoundation.TEAMEXPLORER.dll10.0.40219.396799,90428-Abr-201218: 41x 86
Microsoft.VisualStudio.TeamFoundation.VersionControl.dll10.0.40219.39659,04828-Abr-201218: 41x 86
Microsoft.VisualStudio.TeamFoundation.VersionControl.dll10.0.40219.39659,56028-Abr-201218: 41x 86
Microsoft.VisualStudio.TeamFoundation.VersionControl.dll10.0.40219.39661,09628-Abr-201218: 41x 86
Microsoft.VisualStudio.TeamFoundation.VersionControl.dll10.0.40219.39663,65628-Abr-201218: 41x 86
Microsoft.VisualStudio.TeamFoundation.VersionControl.dll10.0.40219.396942,24028-Abr-201218: 41x 86
Microsoft.VisualStudio.TeamFoundation.WorkItemTracking.dll10.0.40219.396460,96828-Abr-201218: 41x 86
Microsoft.VisualStudio.TeamSystem.Integration.dll10.0.40219.396193,17628-Abr-201218: 41x 86
Microsoft.VisualStudio.TestTools.manualtest.Common.dll10.0.40219.396813,21628-Abr-201218: 41x 86
Microsoft.VisualStudio.TestTools.uitest.codegeneration.dll10.0.40219.396155,30428-Abr-201218: 41x 86
Microsoft.VisualStudio.TestTools.uitest.Extension.dll10.0.40219.396193,69628-Abr-201218: 41x 86
Microsoft.VisualStudio.TestTools.uitest.Extension.IE.dll10.0.40219.396252,06428-Abr-201218: 41x 86
Microsoft.VisualStudio.TestTools.uitest.Extension.MSAA.dll10.0.40219.396115,36828-Abr-201218: 41x 86
Microsoft.VisualStudio.TestTools.uitest.Extension.UIA.dll10.0.40219.396107,17628-Abr-201218: 41x 86
Microsoft.VisualStudio.TestTools.uitest.Framework.dll10.0.40219.39658,01628-Abr-201218: 41x 86
Microsoft.VisualStudio.TestTools.uitest.Playback.dll10.0.40219.39666.20028-Abr-201218: 41x 86
Microsoft.VisualStudio.TestTools.uitest.Recorder.dll10.0.40219.396230,04028-Abr-201218: 41x 86
Microsoft.VisualStudio.TestTools.uitesting.dll10.0.40219.396339,60028-Abr-201218: 41x 86
Msdiff.dll10.0.40219.396485,44828-Abr-201218: 41x 86
MTM.exe10.0.40219.396449,08828-Abr-201218: 41x 86
Qtagent.exe10.0.40219.39621,06428-Abr-201218: 41x 86
Qtagent.exe10.0.40219.39621,07228-Abr-201218: 41x 86
Qtagent32.exe10.0.40219.39621,06428-Abr-201218: 41x 86
Qtagent32.exe10.0.40219.39621,07228-Abr-201218: 41x 86
Qtagentservice.exe10.0.40219.39699,92828-Abr-201218: 41x 86
Rpfplayback.dll10.0.40219.396482,47228-Abr-201218: 41x 86
Tf.exe10.0.40219.396325,69628-Abr-201218: 41x 86


Referencias

Para obtener más información acerca de la terminología de la actualización de software, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
824684 Descripción de la terminología estándar que se utiliza para describir las actualizaciones de software de Microsoft

Propiedades

Id. de artículo: 2696646 - Última revisión: miércoles, 23 de mayo de 2012 - Versión: 1.0
La información de este artículo se refiere a:
  • Microsoft Visual Studio 2010 Service Pack 1 sobre las siguientes plataformas
    • 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
Palabras clave: 
kbautohotfix kbqfe kbhotfixserver kbfix kbbug kbexpertiseinter kbsurveynew kbmt KB2696646 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 2696646

Enviar comentarios

 

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