views:

189

answers:

1

I would like to read these three values from my application.exe in my Inno Setup script.

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

Does anyone know how this might be accomplished?

I know I can get the last one using GetFileVersion("path/to/greatapp.exe") is there something similar for the first two?

A: 

I dont know Inno Setup but I guess it supports custom actions like the other setup tools (Visual Studio, Wix, InstallShield or Wise).

So, you will need to create a custom action to read this information from the assembly. In your custom action, you need to add the following code to fetch the assembly attributes:

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
    }
}
Francis B.
It can take a lot of effort, as usually Inno Setup extensions are not authored in .NET, which means you need to parse the file manually on your own to query the attributes.
Lex Li