2011-05-07 10 views
8

Quindi, ho un dll di terze parti scritto in C# 2.0 che deve essere fortemente digitato e non ho accesso al codice sorgente. Ho trovato diversi articoli su come smontare il file .dll e riassemblarlo con un file chiave con un nome molto forte.Forte denominazione di 3rd party 2.0 .dll con VS 2010 Ilasm.exe

Problema che sto avendo è che VS2010 ricompila come un. NET 4.0 dll invece di 2.0 .dll (la versione la nostra applicazione è attualmente in). Non riesco a includere la "nuova" DLL nel mio progetto perché mi dà un errore di runtime di: "Questo assembly è costruito da un runtime più recente del runtime attualmente caricato e non può essere caricato." Se non firmo la DLL, ottengo "l'assembly non è fortemente digitato". errore.

C'è un modo per ricompilare questo dll nel framework 2.0 utilizzando il2.exe ilasm.exe?

risposta

13

Probabilmente si sta utilizzando il Visual Studio 2010 Command Prompt. Configurerà l'ambiente per eseguire C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ ilasm.exe quando si digita "ilasm.exe". Versione errata, si desidera v2.0.50727 \ ilasm.exe. Digita il nome completo. Oppure copia e modifica vc \ bin \ vsvarsall.bat

1

No, non è possibile utilizzare 4.0 ilasm per compilare a 2.0; dovresti usare ilasm.exe dalla directory framework 2.0; ad esempio C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727.

Nota che tutto quello che dovrebbe essere necessario per questo è il tempo di esecuzione, non lo SDK o VS 2005/2008.

Problemi correlati