Un conjunto de productos de software difiere solo por sus cadenas de recursos, recursos binarios y por las cadenas/gráficos/claves de producto utilizadas por sus proyectos de instalación de Visual Studio. ¿Cuál es la mejor manera de crearlos, organizarlos y mantenerlos?Mismo origen, destinos múltiples con recursos diferentes (Visual Studio .Net 2008)
es decir, todos los productos consisten esencialmente en la misma funcionalidad básica personalizada por gráficos, cadenas y otros datos de recursos para formar cada producto. Imagine que está creando un conjunto de productos como "Excel for Bankers", Excel for Gardeners "," Excel for CEOs ", etc. Cada producto tiene la misma funcionalidad, pero difiere en nombre, gráficos, archivos de ayuda, plantillas incluidas, etc. .
El entorno en el que éstos se están construyendo es: Windows.Forms vainilla/Visual Studio 2008/C#/.NET
La solución ideal sería fácil de mantener por ejemplo, si introduzco una nueva cadena../Los nuevos proyectos de recursos a los que no he agregado el recurso deberían fallar en tiempo de compilación, no de ejecución (y la posterior localización de los productos también debería ser factible).
Espero haberme perdido la manera obvia y fácil de hacer todo esto. ¿Qué es?
Aclaración ============ (s) ================
Por "producto" me refiero al paquete de software que el instalador instala y vende al usuario final.
Actualmente tengo una solución, que consta de varios proyectos (incluido un proyecto de configuración), que crea un conjunto de conjuntos y crea un único instalador.
Lo que necesito para producir son múltiples productos/instaladores, todos con funcionalidades similares, que se construyen a partir del mismo conjunto de ensambles pero difieren en el conjunto de recursos utilizados por uno de los ensamblajes. ¿Cuál es la mejor manera de hacer esto?
------------ La Solución 95% ----------------- En base a la respuesta de Daminen_the_unbeliever, un archivo de recursos
por configuración se puede lograr de la siguiente manera:
- Cree un proyecto de biblioteca de clase ("Satélite").
- Eliminar el archivo .cs por defecto y añadir una carpeta ("Default")
- Crear un archivo de recursos en la carpeta "MyResources"
- Propiedades - establecer CustomToolNamespace a algo apropiado (por ejemplo, "XXX")
- Asegúrese de que el modificador de acceso para los recursos sea "Público". Agregue los recursos. Edita el código fuente. Consulte los recursos en su código como XXX.MyResources.ResourceName)
- crear configuraciones para cada variante de producto ("ConfigN")
- Para cada variante de producto, crear una carpeta ("VariantN")
- Copiar y Pegue el archivo MyResources en cada carpeta VariantN
- Descargue el proyecto "Satélite" y edítelo.archivo csproj
- Para cada etiqueta "VariantN/MyResources"
<Compile>
o<EmbeddedResource>
, agregue un atributoCondition="'$(Configuration)' == 'ConfigN'"
. - Guardar, recargar la .csproj, y ya está ...
Esto crea un archivo de recursos per-configuración, que puede (presumiblemente) se localizó posteriormente. Los mensajes de error de compilación se producen para cualquier configuración en la que falta un recurso. Los archivos de recursos pueden ser localizados usando el método estándar (crear un segundo archivo de recursos (MyResources.fr.resx) y editar .csproj como antes).
La razón por la cual esta es una solución del 95% es que los recursos utilizados para inicializar formularios (por ejemplo, títulos de formularios, textos de botones) no se pueden manejar fácilmente de la misma manera; el enfoque más fácil parece ser sobrescribirlos con valores de el conjunto satelital.
La pregunta es un poco confusa para mí. Realmente te sugiero que revises tu pregunta inicial y vuelvas a publicar usando los términos técnicos en Visual Studio, así como aislar tu pregunta. – Roast
Aclaraciones adicionales. Actualmente estamos buscando editar el archivo .csproj para incluir un archivo de recursos de reemplazo de acuerdo con la configuración de compilación. Desordenado para mantener. ¿Alguien sabe si esto es práctico? – MZB
También considera crear una herramienta para comparar recursos para garantizar que exista el mismo conjunto de recursos en dos archivos para reducir las pruebas de regresión ... ¿Alguien sabe si existe una herramienta de este tipo? – MZB