2010-02-01 27 views
9

Ho creato un'applicazione WPF e ho offuscato l'exe principale con uno strumento esterno.È possibile offuscare un'applicazione ClickOnce creata in Visual Studio 2008?

Ora ho problemi a pubblicarlo come applicazione ClickOnce, perché Visual Studio in qualche modo sta ricomponendo nuovamente l'eseguibile principale.

ho disattivato le caselle costruire sotto il responsabile Solution → Configurazione, ma non ha funzionato: l'eseguibile continua ad essere ricostruita quando pubblico l'applicazione per http://localhost/MyApplication

E 'possibile distribuire l'applicazione ClickOnce senza ricompilazione il progetto attuale?

Se non è possibile, è disponibile uno strumento gratuito per generare un'applicazione ClickOnce con file specifici desiderati?

+0

Dai un'occhiata a http://stackoverflow.com/questions/3416223/how-to-use-obfuscation-for-clickonce/12036582#12036582 (possibile duplicato?) – Matmarbon

risposta

7

Disclaimer: io lavoro per PreEmptive Solutions, i creatori di Dotfuscator.

Il problema con la soluzione di Jared è che un'attività di post-produzione viene eseguita troppo tardi nel processo di compilazione mentre i passi di generazione di ClickOnce creano i manifesti (comprese le firme di assemblaggio, che modificano l'offuscamento) molto prima che si verifichi la generazione del post. È possibile modificare il file MSBuild (il file .csproj/.vbproj) per chiamare l'attività di offuscamento nel passaggio AfterCompile e fare in modo che l'obfuscator esegua il dump degli assembly offuscati nella directory bin di build, ma questo è un problema.

Una seconda alternativa è quella di utilizzare gli strumenti Mage/MageUI per ricreare l'ClickOnce manifesta pubblicando la vostra applicazione, offuscando le assemblee, sovrascrivendo le assemblee pubblicati con le versioni offuscato e poi correre Mage per ricreare i manifesti come mostrato here. La documentazione per l'utilità Mage è here.

Una terza alternativa è se il tuo obfuscator è Dotfuscator Professional versione 4.6.1010 o successiva. Dotfuscator ha la capacità di leggere direttamente un manifest di distribuzione ClickOnce come input, offuscare gli assembly e generare sia gli assembly offuscati che i file manifest completamente aggiornati. Vedere here per un punto di partenza.

1

Non capisco esattamente perché ClickOnce abbia questo comportamento apparente. Tuttavia dovresti essere in grado di aggirare questo problema inserendo la fase di offuscamento nel sistema di build. Prova a definire un'attività di post-build che esegue l'obfuscator contro l'EXE/DLL. Poiché verrà eseguito come parte della generazione, ClickOnce raccoglierà la ricostruzione della DLL offuscata o meno.

Consente inoltre di risparmiare la fatica di eseguirlo manualmente :)

2

Cordiali saluti, questo viene gestito in Visual Studio 2010.

Nel frattempo, è necessario pubblicare una cartella, offuscare le assemblee, e ri-firmare la distribuzione utilizzando Mage o MageUI. Ciò è dovuto al fatto che ClickOnce esegue il hash degli assembly e quando vengono nascosti, modifica gli hash e non corrispondono più alle informazioni nel manifest.

RobinDotNet

0

La mia azienda scrive un pezzo di software chiamato ClickOnceMore che è l'ideale per questo scenario. ClickOnceMore è uno strumento ClickOnce che può essere utilizzato per automatizzare ClickOnce come parte di un processo di grandi dimensioni.

Utilizzando le regole di inclusione dei file è possibile includere gli assembly offuscati nel progetto ClickOnceMore e quindi creare i manifesti ClickOnce utilizzando lo strumento della riga di comando ClickOnceMore.

Molti dei nostri clienti utilizzano ClickOnceMore per creare manifesti ClickOnce con assiemi offuscati. È possibile trovare il software a www.clickoncemore.net.

Problemi correlati