I would like to read these three values from my application.exe in my Inno Setup script.
[assembly: AssemblyCompany(\"My Company\")]
[assembly: AssemblyProdu
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
}
}
Use the GetStringFileInfo() function provided by the Inno Setup Preprocessor (ISPP) as follows:
GetStringFileInfo("path/to/greatapp.exe", "CompanyName")
GetStringFileInfo("path/to/greatapp.exe", "ProductName")
GetStringFileInfo("path/to/greatapp.exe", "FileVersion")
As you have already mentioned, you can use the GetFileVersion()
function instead of #3 above.
Also, have a look at the ISPPBuiltins.iss
script file included with your Inno Setup installation. It contains a GetFileCompany()
function to use instead of #1 above and you can implement #2 above in a similar fashion.