Pregunta

Me gustaría leer estos tres valores de mi application.exe en mi script Inno Setup.

[assembly: AssemblyCompany("My Company")]
[assembly: AssemblyProduct("My Great Application")]
[assembly: AssemblyFileVersion("9.3.2")]

¿Alguien sabe cómo se puede lograr esto?

Sé que puedo obtener el último usando GetFileVersion (" ruta / a / greatapp.exe ") ¿Hay algo similar para los dos primeros?

¿Fue útil?

Solución

Utilice la función GetStringFileInfo () proporcionada por el Preprocesador de configuración de Inno (ISPP) de la siguiente manera:

  1. GetStringFileInfo (" ruta / a / greatapp.exe " ;, " CompanyName ")
  2. GetStringFileInfo (" ruta / a / greatapp.exe " ;, " ProductName ")
  3. GetStringFileInfo (" ruta / a / greatapp.exe " ;, " FileVersion ")

Como ya mencionó, puede usar la función GetFileVersion () en lugar del # 3 anterior.

Además, eche un vistazo al archivo de script ISPPBuiltins.iss incluido con su instalación de Inno Setup. Contiene una función GetFileCompany () para usar en lugar del # 1 anterior y puede implementar el # 2 arriba de manera similar.

Otros consejos

No conozco Inno Setup pero supongo que admite acciones personalizadas como las otras herramientas de configuración (Visual Studio, Wix, InstallShield o Wise).

Por lo tanto, deberá crear una acción personalizada para leer esta información del ensamblado. En su acción personalizada, debe agregar el siguiente código para obtener los atributos del ensamblaje:

Assembly assembly  = Assembly.LoadFrom (@"path\to\greatapp.exe");
object[] attributes = assembly.GetCustomAttributes(true);

if (attributes.Length > 0)
{
    foreach (object o in attibutes) 
    {
        //Do Something with the attribute
    }
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top