¿Puedo leer la información del archivo de ensamblaje en Inno Setup?
-
07-07-2019 - |
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?
Solución
Utilice la función GetStringFileInfo ()
proporcionada por el Preprocesador de configuración de Inno (ISPP) de la siguiente manera:
-
GetStringFileInfo (" ruta / a / greatapp.exe " ;, " CompanyName ")
-
GetStringFileInfo (" ruta / a / greatapp.exe " ;, " ProductName ")
-
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
}
}