Condividi tramite


Strumentazione e ripetizione della firma di assembly

Se si desidera raccogliere dati di code coverage durante il test di codice in un assembly, Visual Studio deve prima instrumentare quell'assembly. Il processo di strumentazione prevede l'aggiunta di codice all'assembly che generi dati di code coverage.

Se tuttavia l'assembly che si sta testando è stato firmato con un nome sicuro, la modifica del codice causata dalla strumentazione invalida la firma. Quindi Visual Studio tenta automaticamente di ripetere la firma dell'assembly immediatamente dopo il passaggio della strumentazione.

Se la ripetizione della firma ha esito positivo, l'esecuzione dei test viene terminata e i risultati vengono riprodotti correttamente. In caso contrario, verrà generato un errore analogo al seguente:

Strong name verification failed for the instrumented assembly 'SignedLibrary, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1696e096eba75082'. Please make sure that the correct key file for re-signing after instrumentation is specified in the test settings.

Per correggere l'errore, attenersi alla seguente procedura:

  • Ripetere la firma dell'assembly. Se si dispone del file di chiave utilizzato per firmare l'assembly, è possibile specificarlo in modo che Visual Studio possa ripetere automaticamente la firma dell'assembly.

  • Disabilitare la verifica della firma. È possibile disabilitare la verifica della firma nel computer in cui esegue il test dell'assembly. Questa azione si applica solo agli assembly specificati.

Ripetere la firma dell'assembly

Nelle impostazioni per l'adattatore dati di diagnostica per il code coverage, è possibile specificare un file di chiave per la ripetizione della firma dei file binari dopo la strumentazione. Se si stanno testando più assembly firmati, Visual Studio tenterà di ripetere la firma di tutti gli assembly con nome sicuro che erano stati firmati con il file di chiave specificato.

Specificando un file di chiave si aggiunge un passo per la ripetizione della firma al processo di esecuzione del test. In Visual Studio verrà automaticamente determinato quali assembly firmare nuovamente tramite il file di chiave specificato. Verrà ripetuta la firma di tutti gli assembly che possono essere firmati di nuovo con questo file di chiave.

Nota

Gli assembly possono essere firmati di nuovo solo utilizzando un file di chiave, non un nome di chiave.

La ripetizione della firma di assembly non sarà completa o non può essere eseguita nei seguenti casi:

  • Se il file di chiave non è disponibile, Visual Studio non è in grado di firmare di nuovo l'assembly. È possibile tentare di rigenerare il file di chiave e quindi provare a firmare di nuovo l'assembly.

  • Se il file di chiave è protetto da password, non è possibile ripetere la firma.

  • Per ogni esecuzione di test è supportato un unico file di chiave. Si consideri, ad esempio, un'esecuzione del test che faccia riferimento a diversi assembly. Alcuni di questi assembly sono stati firmati utilizzando un file di chiave, mentre altri sono stati firmati con un file di chiave diverso. Poiché è possibile selezionare un unico file di chiave, gli assembly per i quali è richiesto l'altro file non verranno firmati di nuovo e sarà necessario eseguire questa operazione manualmente. Se alcuni assembly vengono lasciati senza firma, verrà generato un errore a livello di esecuzione di test. In questo caso, è possibile disabilitare la verifica della firma, come descritto in Disabilitare la verifica della firma.

Disabilitare la verifica della firma

Se non è possibile ripetere la firma, è possibile scegliere di disabilitare la verifica per l'assembly per la durata dell'esecuzione del test. Ad esempio, non sarà possibile ripetere la firma se il file di chiave corretto non è disponibile. Per disabilitare la verifica della firma, utilizzare lo Sn.exe (strumento Nome sicuro) con l'opzione –Vr, come illustrato di seguito:

SN -Vr <nome assembly>

La verifica dei nomi sicuri viene disabilitata, solo per l'assembly specificato, nel computer in cui viene eseguito il comando.

È possibile eseguire questa operazione solo se si dispone di autorizzazioni sufficienti.

Al termine dell'esecuzione dei test, riattivare la verifica della firma. Per eseguire questa operazione, utilizzare il comando SN.exe con l'opzione –Vu, come illustrato di seguito:

SN -Vu <nome assembly>

Nota

È importante riattivare la verifica della firma. In caso contrario, si possono verificare problemi di sicurezza.

Vedere anche

Attività

Procedura: configurare code coverage mediante impostazioni di test per test automatizzati

Procedura: ottenere dati di code coverage

Creazione di impostazioni di test per l'esecuzione di test automatizzati da Visual Studio

Creazione di impostazioni di test per test automatizzati come parte di un piano di test

Procedura: firmare un assembly con un nome sicuro

Riferimenti

Sn.exe (strumento Nome sicuro)

Concetti

Assembly con nomi sicuri