2010-02-04 17 views
22

Tengo Resources.resx, que se utiliza para generar Resources.designer.cs. ¿Debería registrarse Resources.designer.cs, o puedo confiar en que Visual Studio lo genere cuando sea necesario?¿Debería Resources.Designer.cs estar bajo control de fuente?

+7

[Microsoft dice] (http://connect.microsoft.com/VisualStudio/feedback/details/285765/resources-designer-cs-doesnt-automatically-get-rebuilt-despite-it-being-an-auto- archivo-generado) "las herramientas personalizadas se ejecutan en tiempo de diseño y no en tiempo de compilación, y por lo tanto, el archivo dependiente debe verificarse en el control de origen." –

Respuesta

11

Mi preferencia es:.. Si se modifica mediante el sistema de construcción, garantizar el proceso de construcción lo creará y no verificarlo en

Para los archivos generados automáticamente como 'de diseño', les registras solamente ser modificado cuando otros componentes cambian (por mí). Es generado por VS y no modificado por el sistema de compilación.

1

No estoy 100% seguro de los escenarios de compilación alrededor de este archivo. Creo que es probable que Studio, o más apropiadamente, msbuild, vuelva a generar el archivo cada vez que compile su aplicación, pero no está seguro.

De cualquier manera, aun así comprobar este archivo en un par de razones

  1. Es el valor por defecto para la mayoría de los proveedores de control de código fuente en Visual Studio. Han pensado mucho más en este problema que yo y probablemente tengan buenas razones para hacerlo.
  2. Depuración: es poco probable que exista un problema en Resource.Designer.cs, pero si lo hubiera sería forzado para compilar antes de que pueda adjuntar/depurar
  3. El control de origen debe ser un historial de sus fuentes. ¿De qué sirve si no puede ver todas las fuentes relacionadas con su aplicación?

La primera razón es el más importante

+0

En el punto 1, ese puede ser el caso pero el equipo de Xamarin en sus proyectos de GitHub lo ha ignorado, así que siento que en el mejor de los casos es solo un lado del argumento. –

6

me encontré con su poste para un problema que estoy experimentando, no es lo mismo, pero me ayudó a encontrar una solución temporal. Esto es lo que encontré que podría ayudarlo ...

Estoy creando un archivo de recursos de cadena simple. Luego uso un programa CodeProject modificado que lo traduce a idiomas extranjeros. (Usaremos servicios profesionales una vez que estabilicemos el código) La utilidad no crea los archivos designer.cs. Al hacer una reconstrucción de , todos tampoco volvieron a crear los archivos. Parece que cada vez que utiliza una herramienta externa (no el diseñador de Visual Studio) para modificar un archivo de resx, perderá esos cambios sincronizados. En mi caso, el archivo de diseñador se utiliza simplemente para escribir con fuerza las cadenas de nombres de propiedades. Si está utilizando las ID para extraer la cadena (método antiguo), entonces no necesitará estos archivos y, por lo tanto, no será necesario que los controle en el control de la fuente. Sin embargo, si está utilizando el acceso fuertemente tipado a estas cadenas (método más moderno), debe verificarlas.

Como un lado ... Encontré una manera de volver a sincronizar esos archivos designer.cs con su contador resx partes porque ese era mi problema ... las necesitaba. Al seleccionar un archivo resx en el Explorador de soluciones y configurar la propiedad CustomTool en PublicResXFileCodeGenerator se creó al instante el archivo designer.cs. Desafortunadamente, si ya está configurado, debe anular su configuración y luego volver a configurarlo para crear el archivo. Si alguien conoce una manera de forzar una recreación de estos a través de algunos medios automatizados ... Realmente lo agradecería.

Gracias.

+7

Hola Dennis. Puedes ejecutar el Generador de código ResX manualmente haciendo clic derecho en el archivo resx y seleccionando "Ejecutar herramienta personalizada". – theDmi

Cuestiones relacionadas