none
Deployment della applicazione e ConfuserEX RRS feed

  • Domanda

  • Sono ormai arrivato alla fine della applicazione e ora ho la necessità di dover offuscare il codice e pubblicarlo: ho scelto ConfuserEX e ClickOnce.

    Uso il framework .NET 4.5.

    Ho seguito attentamente il post sul sito di ConfuserEX ma non riesco proprio a creare un pacchetto di installazione che mi faccia funzionare l'applicazione!

    Gli ementi che devo gestire in più rispetto alla guida sono la libreria NAudio.dll e vorrei firmare il mio unico file applicazione, un file ".exe" (firmo sia i manifesti che l'assembly).

    La gestione della firma dell'assembly penso di gestirla correttamente: basta al punto 2 della guida editare in ConfuserEx le proprietà del file che decido di offuscare indicando i certificato ".pfx" e la sua password;
    quando richiesto da mageui riconfermo stessa chiave e password.

    Se non firmo giustamente l'installazione avviene correttamente. Poi quando eseguo il programma mi appare:

    Firmando invece non riesco ad installare:

    Non capisco dove mi intoppo...

    Sarei veramente grato per un aiuto!

    Simeone


    • Modificato Simeo74 domenica 21 febbraio 2016 22:19
    domenica 21 febbraio 2016 21:44

Risposte

  • Scusa se intervengo su un thread con uno scambio di risposte, ma ho visto lo screenshot che hai pubblicato ed il messaggio che mostra dice chiaramente che la libreria NAudio.dll non è firmata, se la libreria è un prodotto di terze parti o un open source, usualmente ne vengono sempre fornite 2 versioni, una firmata ed una non firmata, in modo che tu possa usare quella corretta. Infatti, se scegli di firmare le tue dll e i tuoi exe, questi funzioneranno solo se tutte le dll con cui interagiscono sono firmate. La firma in questione è quella che viene effettuata utilizzando un file .SNK generato con il signtool.exe ed agganciato alle proprietà di progetto (tab Signing in inglese, in italiano non ho idea). Se la libreria NAudio che usi è una libreria Open Source di cui puoi scaricare e compilare i sorgenti, e quella formita già compilata non è firmata, puoi scaricare la soluzione che la produce aggiungere la firma e ricompilarla, in questo modo, firmando la tua applicazione potrai usarne questa versione.

    La firma delle librerie/exe con il file SNK non è la stessa cosa della firma con certificato digitale posta sulle librerie compilate dopo averle generate. (Quella che fa in modo che il tuo nome appaia nelle property delle librerie e dell'exe quando le guardi dal file manager di window e che fa in modo che il tuo setup citi il tuo nome e non dica Autore sconosciuto).


    Sabrina C. - http://www.dotnetwork.it

    domenica 28 febbraio 2016 15:23

Tutte le risposte

  • Buongiorno Simeo74, 

    La firma venne gestita dal Confuser o da VS? 

    Seguendo questo tutorial che era al inizio per VS2012, e poi il primo thread e risposta parlino di 2010, hai per caso controllato al loro forum per un simile problema per quanto riguarda la versiona VS che usi al questo momento insieme al 4.5 .NET? 
    L'errore ha "Dettagli"

    Potresti condividere anche questi per cortesia? 

    Noto che la versione e:

    Current Confuser 1.9
    date Sat Jun 23, 2012 at 10:00 AM

    La app che stai creando, e possibile che magari non e compatibile, visto anche:

    status

    Beta


    • Microsoft offre questo servizio gratuitamente, per aiutare gli utenti e aumentare il database dei prodotti e delle tecnologie. Il contenuto fornito “as is“ non comporta alcuna responsabilità da parte dell’azienda.


    lunedì 22 febbraio 2016 13:03
    Moderatore
  • I "Dettagli":


    INFORMAZIONI VERSIONE PIATTAFORMA
        Windows             : 6.1.7601.65536 (Win32NT)
        Common Language Runtime     : 4.0.30319.42000
        System.Deployment.dll         : 4.6.1055.0 built by: NETFXREL2
        clr.dll             : 4.6.1055.0 built by: NETFXREL2
        dfdll.dll             : 4.6.1055.0 built by: NETFXREL2
        dfshim.dll             : 4.0.31106.0 (Main.031106-0000)

    ORIGINI
        URL distribuzione            : file:///C:/Users/Simeo/Desktop/Pubblicazione%20FrequenzyGenerator/Application%20Files/Generatore_di_Frequenze_1_2_0_46/Confused/Generatore_di_Frequenze.application
        URL applicazione            : file:///C:/Users/Simeo/Desktop/Pubblicazione%20FrequenzyGenerator/Application%20Files/Generatore_di_Frequenze_1_2_0_46/Confused/Generatore_di_Frequenze.exe.manifest

    IDENTITÀ
        Identità distribuzione        : Generatore_di_Frequenze.application, Version=1.2.0.46, Culture=it-IT, PublicKeyToken=53d8b4c7f115c437, processorArchitecture=msil

    RIEPILOGO APPLICAZIONE
        * Applicazione installabile.

    RIEPILOGO ERRORI
        Quello che segue è un riepilogo degli errori. Informazioni dettagliate su tali errori sono disponibili più avanti nel registro.
        * L'attivazione di C:\Users\Simeo\Desktop\Pubblicazione FrequenzyGenerator\Application Files\Generatore_di_Frequenze_1_2_0_46\Confused\Generatore_di_Frequenze.application ha causato un'eccezione. Sono stati rilevati i messaggi di errore seguenti:
            + L'hash calcolato del manifesto dell'applicazione è diverso da quello specificato oppure non è stato specificato un hash.
            + L'hash calcolato del file Generatore_di_Frequenze.exe.manifest è diverso da quello specificato nel manifesto.

    RIEPILOGO ERRORI TRANSAZIONE ARCHIVIO COMPONENTI
        Nessun errore di transazione rilevato.

    AVVISI
        Nessun avviso durante l'operazione.

    STATO OPERAZIONE
        * [22/02/2016 18:54:10] : Attivazione di C:\Users\Simeo\Desktop\Pubblicazione FrequenzyGenerator\Application Files\Generatore_di_Frequenze_1_2_0_46\Confused\Generatore_di_Frequenze.application avviata.
        * [22/02/2016 18:54:11] : Elaborazione del manifesto di distribuzione completata.
        * [22/02/2016 18:54:11] : Installazione dell'applicazione avviata.

    DETTAGLI ERRORI
        Durante l'operazione sono stati rilevati gli errori seguenti.
        * [22/02/2016 18:54:11] System.Deployment.Application.InvalidDeploymentException (HashValidation)
            - L'hash calcolato del manifesto dell'applicazione è diverso da quello specificato oppure non è stato specificato un hash.
            - Origine: System.Deployment
            - Analisi dello stack:
                in System.Deployment.Application.DownloadManager.DownloadApplicationManifest(AssemblyManifest deploymentManifest, String targetDir, Uri deploymentUri, IDownloadNotification notification, DownloadOptions options, Uri& appSourceUri, String& appManifestPath)
                in System.Deployment.Application.ApplicationActivator.DownloadApplication(SubscriptionState subState, ActivationDescription actDesc, Int64 transactionId, TempDirectory& downloadTemp)
                in System.Deployment.Application.ApplicationActivator.InstallApplication(SubscriptionState& subState, ActivationDescription actDesc)
                in System.Deployment.Application.ApplicationActivator.PerformDeploymentActivation(Uri activationUri, Boolean isShortcut, String textualSubId, String deploymentProviderUrlFromExtension, BrowserSettings browserSettings, String& errorPageUrl)
                in System.Deployment.Application.ApplicationActivator.ActivateDeploymentWorker(Object state)
            --- Eccezione interna ---
            System.Deployment.Application.InvalidDeploymentException (HashValidation)
            - L'hash calcolato del file Generatore_di_Frequenze.exe.manifest è diverso da quello specificato nel manifesto.
            - Origine: System.Deployment
            - Analisi dello stack:
                in System.Deployment.Application.ComponentVerifier.VerifyFileHash(String filePath, Hash hash)
                in System.Deployment.Application.ComponentVerifier.VerifyFileHash(String filePath, HashCollection hashCollection)
                in System.Deployment.Application.DownloadManager.DownloadApplicationManifest(AssemblyManifest deploymentManifest, String targetDir, Uri deploymentUri, IDownloadNotification notification, DownloadOptions options, Uri& appSourceUri, String& appManifestPath)

    DETTAGLI TRANSAZIONE ARCHIVIO COMPONENTI
        Nessuna informazione disponibile sulla transazione.

    -------------------------------------------------------------------------------------------------------------------------------

    Da http://yck1509.github.io/ConfuserEx/ leggo:

    "ConfuserEx supports .NET Framework from 2.0 - 4.5 and Mono". L'ultima versione disponibile è la 0.6 che è quella che uso io.

    ConfuserEX deriva da Confuser il cui sviluppo è stato interrotto.

    lunedì 22 febbraio 2016 18:19
  • Sono riuscito a creare il pacchetto di installazione e offuscare, ma solo se non firmo il mio assembly!

    Se firmo l'assembly mi da l'errore esposto nel post precedente sulla  libreria audio NAudio!

    Come dovrei gestire questa libreria?

    Simeo

    domenica 28 febbraio 2016 11:26
  • Scusa se intervengo su un thread con uno scambio di risposte, ma ho visto lo screenshot che hai pubblicato ed il messaggio che mostra dice chiaramente che la libreria NAudio.dll non è firmata, se la libreria è un prodotto di terze parti o un open source, usualmente ne vengono sempre fornite 2 versioni, una firmata ed una non firmata, in modo che tu possa usare quella corretta. Infatti, se scegli di firmare le tue dll e i tuoi exe, questi funzioneranno solo se tutte le dll con cui interagiscono sono firmate. La firma in questione è quella che viene effettuata utilizzando un file .SNK generato con il signtool.exe ed agganciato alle proprietà di progetto (tab Signing in inglese, in italiano non ho idea). Se la libreria NAudio che usi è una libreria Open Source di cui puoi scaricare e compilare i sorgenti, e quella formita già compilata non è firmata, puoi scaricare la soluzione che la produce aggiungere la firma e ricompilarla, in questo modo, firmando la tua applicazione potrai usarne questa versione.

    La firma delle librerie/exe con il file SNK non è la stessa cosa della firma con certificato digitale posta sulle librerie compilate dopo averle generate. (Quella che fa in modo che il tuo nome appaia nelle property delle librerie e dell'exe quando le guardi dal file manager di window e che fa in modo che il tuo setup citi il tuo nome e non dica Autore sconosciuto).


    Sabrina C. - http://www.dotnetwork.it

    domenica 28 febbraio 2016 15:23
  • Mi hai illuminato! Ora so come affrontare il problema.
    Provo subito.

    Grazie!!

    Simeo

    lunedì 29 febbraio 2016 10:40