@Coldfire
Okay, ich kann mir also von VS eine GUID erstellen lassen und die verwenden.
Was ist wenn ich die nicht explizit im Skript setze, wird dann automatisch eine erzeugt? Bzw. wenn ich die nicht explizit ändere bei jeder neuen Version, bleibt sie dann gleich?
@xChRoNiKx
Hab mal ein bisschen recherchiert, da gibt es doch zwei Methoden:
jrsoftware.org/ishelp/index.php?topic=isxfunc_getsha1offile
jrsoftware.org/ishelp/index.php?topic=isxfunc_getmd5offile
Jetzt muss ich noch rausfinden, wie ich die am Besten anwende...
Edit:
So sollte es gehen. Ich probiers mal aus und lass es euch wissen. Ich denke ich schreibe auch ein kleines Tool das mir den Code erzeugt...:
Spoiler anzeigen
Edit 2: Yep es funktioniert
An die richtigen Checksummen kommt man so:
Edit 3:
@xChRoNiKx
Hab jetzt tatsächlich ein kleines Tool geschrieben, das ein InnoSetup Skript erstellt (bzw. die betroffenen Sections), das mir nach der Installation die Dateien auf Integrität überprüft und zusätzlich die Ordnerstrukturen ohne zusätzliches Editieren des Codes übernimmt. Ich hoffe das hilft dir/euch, wenn ihr das gleiche Problem habt wie ich.
Ist hier zu finden:
github.com/kafffee/InnoSetupCheckSumHelper
oder auch im SourceCode-Austausch, sobald es freigeschaltet wird.
Okay, ich kann mir also von VS eine GUID erstellen lassen und die verwenden.
Was ist wenn ich die nicht explizit im Skript setze, wird dann automatisch eine erzeugt? Bzw. wenn ich die nicht explizit ändere bei jeder neuen Version, bleibt sie dann gleich?
@xChRoNiKx
Hab mal ein bisschen recherchiert, da gibt es doch zwei Methoden:
jrsoftware.org/ishelp/index.php?topic=isxfunc_getsha1offile
jrsoftware.org/ishelp/index.php?topic=isxfunc_getmd5offile
Jetzt muss ich noch rausfinden, wie ich die am Besten anwende...
Edit:
So sollte es gehen. Ich probiers mal aus und lass es euch wissen. Ich denke ich schreibe auch ein kleines Tool das mir den Code erzeugt...:
HTML-Quellcode
- [Files]
- Source: "dependencies\dotNetFx45_Full_setup.exe"; DestDir: {tmp}; Flags: deleteafterinstall; AfterInstall: InstallFramework; Check: FrameworkIsNotInstalled
- Source: "D:\Dokumente\Visual Studio 2013\Projects\Hurricane\Source\Hurricane\bin\Release\Hurricane.exe"; DestDir: "{app}"; Flags: ignoreversion; Check: IsFileCorrupt('D:\Dokumente\Visual Studio 2013\Projects\Hurricane\Source\Hurricane\bin\Release\Hurricane.exe', '<ChecksummeABCDEF>')
- [Code]
- var CancelWithoutPrompt: boolean;
- function InitializeSetup(): Boolean;
- begin
- CancelWithoutPrompt := false;
- result := true;
- end;
- function IsFileCorrupt(argPfad: String; argCheckSum: String): Boolean;
- begin
- if GetSHA1OfFile(argPfad)=argChecksum then
- Result := true
- else
- begin
- MsgBox('Eine Installationsdatei ist beschädigt. Bitte versuche, den Installer erneut herunterzuladen. Falls das Problem besteht, kontaktiere bitte den Entwickler.', mbError, MB_OK);
- CancelWithoutPrompt := true;
- WizardForm.Close;
- Result := false
- end;
- end;
Edit 2: Yep es funktioniert
An die richtigen Checksummen kommt man so:
VB.NET-Quellcode
- Sub Main()
- Dim MeinHash As String = ""
- Console.WriteLine("Bitte gebe den Pfad einer Datei ein:")
- Dim Pfad As String = Console.ReadLine
- Using cryptoProvider As New SHA1CryptoServiceProvider()
- MeinHash = BitConverter.ToString(cryptoProvider.ComputeHash(File.ReadAllBytes(Pfad)))
- End Using
- MeinHash = MeinHash.Replace("-", "").ToLower
- Console.WriteLine(MeinHash)
- Clipboard.SetText(MeinHash)
- Console.ReadLine()
- End Sub
Edit 3:
@xChRoNiKx
Hab jetzt tatsächlich ein kleines Tool geschrieben, das ein InnoSetup Skript erstellt (bzw. die betroffenen Sections), das mir nach der Installation die Dateien auf Integrität überprüft und zusätzlich die Ordnerstrukturen ohne zusätzliches Editieren des Codes übernimmt. Ich hoffe das hilft dir/euch, wenn ihr das gleiche Problem habt wie ich.
Ist hier zu finden:
github.com/kafffee/InnoSetupCheckSumHelper
oder auch im SourceCode-Austausch, sobald es freigeschaltet wird.
Dieser Beitrag wurde bereits 7 mal editiert, zuletzt von „kafffee“ ()