7 Stimmen

Kann ich AssemblyFile-Informationen in Inno Setup lesen?

Ich möchte diese drei Werte aus meiner application.exe in meinem Inno Setup-Skript lesen.

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

Weiß jemand, wie man dies bewerkstelligen kann?

Ich weiß, dass ich das letzte Stück mit GetFileVersion("pfad/zu/greatapp.exe") gibt es etwas Ähnliches für die ersten beiden?

12voto

Bernard Punkte 7838

を使用します。 GetStringFileInfo() Funktion, die vom Inno Setup Preprocessor (ISPP) bereitgestellt wird wie folgt:

  1. GetStringFileInfo("path/to/greatapp.exe", "CompanyName")
  2. GetStringFileInfo("path/to/greatapp.exe", "ProductName")
  3. GetStringFileInfo("path/to/greatapp.exe", "FileVersion")

Wie Sie bereits erwähnt haben, können Sie die GetFileVersion() Funktion anstelle von #3 oben.

Werfen Sie auch einen Blick auf die ISPPBuiltins.iss Skriptdatei, die in Ihrer Inno Setup-Installation enthalten ist. Sie enthält eine GetFileCompany() Funktion anstelle der obigen Nr. 1 zu verwenden, und Sie können die obige Nr. 2 auf ähnliche Weise implementieren.

0voto

Francis B. Punkte 6776

Ich kenne Inno Setup nicht, aber ich vermute, es unterstützt benutzerdefinierte Aktionen wie die anderen Setup-Tools (Visual Studio, Wix, InstallShield oder Wise).

Sie müssen also eine benutzerdefinierte Aktion erstellen, um diese Informationen aus der Baugruppe zu lesen. In Ihrer benutzerdefinierten Aktion müssen Sie den folgenden Code hinzufügen, um die Baugruppenattribute abzurufen:

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
    }
}

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X